如何在Xamarin.Forms中播放来自网址的音乐?

时间:2017-09-22 13:27:53

标签: c# android xamarin.forms

我将构建从网址播放音乐的Xamarin.Forms应用程序。

我为每个平台实现使用了依赖服务。

[assembly: Dependency(typeof(AudioSerivce))]

namespace xxx.Droid {

public class AudioSerivce : IAudio
{
    int clicks = 0;
    MediaPlayer player;

    public AudioSerivce()
    {
    }

    public bool Play_Pause (string url)
    {
        if (clicks == 0) {
            this.player = new MediaPlayer();
            this.player.SetDataSource(url);
            this.player.SetAudioStreamType(Stream.Music);
            this.player.PrepareAsync();
            this.player.Prepared += (sender, args) =>
            {
                this.player.Start();
            };
            clicks++;
        } else if (clicks % 2 != 0) {
            this.player.Pause();
            clicks++;

        } else {
            this.player.Start();
            clicks++;
        }

        return true;
    }

    public bool Stop (bool val)
    {
        this.player.Stop();
        clicks = 0;
        return true;
    }
}

}

并将其称为

DependencyService.Get<IAudio>().Play_Pause("https://www.searchgurbani.com/audio/sggs/1.mp3");

如果我查看日志,似乎一切正常。 但我无法在Android手机上听到声音。 如果有人有任何建议,请告诉我。 感谢

1 个答案:

答案 0 :(得分:0)

自:

https://forums.xamarin.com/discussion/64218/no-video-player-really

我怀疑Octane视频播放器与Android Emulator之间存在不兼容问题,您使用的是模拟器/模拟器吗?

另一个建议是添加此权限:

INTERNET WRITE_EXTERNAL_STORAGE READ_EXTERNAL_STORAGE

到您的Android应用。

如果这不起作用,请尝试使用其他网址,并比较它是否与其他网址一起使用。