如何流式传输音频(无线电)MvvmCross
How to Stream Audio (Radio ) MvvmCross
我在使用 MvvmCross Android 中流式传输在线广播时遇到了一些困难。我找到了插件 Xamarin MediaManager 并尝试走那条路。
代码如下:
public IMvxCommand ListenCommand => new MvxCommand(Play);
private void Play()
{
CrossMediaManager.Current.Play("http://ic2.christiannetcast.com/wayg-fm");
}
在我的 axml 中,有一个按钮绑定到该命令,按下它会在控制台中输出:
[MediaPlayer] Couldn't open http://ic2.christiannetcast.com/wayg-fm: java.io.FileNotFoundException: No content provider: http://ic2.christiannetcast.com/wayg-fm
我已经用几个不同的链接对其进行了测试,以确保情况并非如此。此外,我已确保在我的 AndroidManifest.xml
中包含 <uses-permission android:name="android.permission.INTERNET" />
我也尝试过使用 Android 的 MediaPlayer,但得到的结果完全相同。
如果我遗漏了什么,请告诉我。我还没有在网上找到关于这个问题的任何解决方案。谢谢!
编辑
我是 运行 这个 Android 模拟器,不是真正的 phone。不知道这是否有所作为。
[MediaPlayer] Couldn't open xxx java.io.FileNotFoundException: No content provider: xxx
void setDataSource(String path):
Sets the data source (file-path or http/rtsp URL) to use.
@param path the path of the file, or the http/rtsp URL of the stream you want to play
setDataSource(Context context, Uri uri):
Sets the data source as a content Uri.
@param uri the Content URI of the data you want to play
which assumes URI to be of some form of ContentProvider
解决方案:
更改您的 MediaPlayer
SetDataSource
方法:
mediaPlayer.SetDataSource(context, Android.Net.Uri.Parse(url));
收件人:
mediaPlayer.SetDataSource(url);
我自己测试了一下,效果很好:
MediaPlayer mediaPlayer = new MediaPlayer();
mediaPlayer.Reset();
mediaPlayer.SetDataSource("https://ia800806.us.archive.org/15/items/Mp3Playlist_555/AaronNeville-CrazyLove.mp3");
mediaPlayer.Prepare();
mediaPlayer.Start();
我在使用 MvvmCross Android 中流式传输在线广播时遇到了一些困难。我找到了插件 Xamarin MediaManager 并尝试走那条路。
代码如下:
public IMvxCommand ListenCommand => new MvxCommand(Play);
private void Play()
{
CrossMediaManager.Current.Play("http://ic2.christiannetcast.com/wayg-fm");
}
在我的 axml 中,有一个按钮绑定到该命令,按下它会在控制台中输出:
[MediaPlayer] Couldn't open http://ic2.christiannetcast.com/wayg-fm: java.io.FileNotFoundException: No content provider: http://ic2.christiannetcast.com/wayg-fm
我已经用几个不同的链接对其进行了测试,以确保情况并非如此。此外,我已确保在我的 AndroidManifest.xml
中包含<uses-permission android:name="android.permission.INTERNET" />
我也尝试过使用 Android 的 MediaPlayer,但得到的结果完全相同。
如果我遗漏了什么,请告诉我。我还没有在网上找到关于这个问题的任何解决方案。谢谢!
编辑
我是 运行 这个 Android 模拟器,不是真正的 phone。不知道这是否有所作为。
[MediaPlayer] Couldn't open xxx java.io.FileNotFoundException: No content provider: xxx
void setDataSource(String path):
Sets the data source (file-path or http/rtsp URL) to use.
@param path the path of the file, or the http/rtsp URL of the stream you want to play
setDataSource(Context context, Uri uri):
Sets the data source as a content Uri.
@param uri the Content URI of the data you want to play
which assumes URI to be of some form of ContentProvider
解决方案:
更改您的 MediaPlayer
SetDataSource
方法:
mediaPlayer.SetDataSource(context, Android.Net.Uri.Parse(url));
收件人:
mediaPlayer.SetDataSource(url);
我自己测试了一下,效果很好:
MediaPlayer mediaPlayer = new MediaPlayer();
mediaPlayer.Reset();
mediaPlayer.SetDataSource("https://ia800806.us.archive.org/15/items/Mp3Playlist_555/AaronNeville-CrazyLove.mp3");
mediaPlayer.Prepare();
mediaPlayer.Start();