我正在构建一个使用MediaManager播放音频的Android Xamarin应用。
播放本地mp3文件甚至像这样的文件:https://ia800806.us.archive.org/15/items/Mp3Playlist_555/AaronNeville-CrazyLove.mp3效果很好。
但我无法通过以下链接播放视频:“http://stream.radiosai.net:8002/”
private readonly IMediaManager mediaPlayer;
public IMediaManager MediaPlayer => mediaPlayer;
public IMediaQueue Queue => mediaPlayer.MediaQueue;
public IMediaFile CurrentTrack => Queue.Current;
//..
mediaPlayer = CrossMediaManager.Current;
//..
Queue.Clear();
var mediaUrls =
new[] {
"https://ia800806.us.archive.org/15/items/Mp3Playlist_555/AaronNeville-CrazyLove.mp3",
"http://stream.radiosai.net:8002/"
};
foreach (var mediaUrl in mediaUrls)
{
Queue.Add(new MediaFile() { Type = MediaFileType.Audio, Url = mediaUrl });
}
第一个链接有效,但第二个没有,我在这里缺少什么?
Ps:可以找到完整的样本here
答案 0 :(得分:0)
您是否尝试使用Exoplayer?
((MediaManagerImplementation)CrossMediaManager.Current).MediaSessionManager = new MediaSessionManager(Application.Context, typeof(ExoPlayerAudioService));
var exoPlayer = new ExoPlayerAudioImplementation(((MediaManagerImplementation)CrossMediaManager.Current).MediaSessionManager);
CrossMediaManager.Current.AudioPlayer = exoPlayer;
答案 1 :(得分:0)
问题似乎是您没有等待足够长的时间来初始化MediaManager(即基础ExoPlayer)。 尝试参加此活动:
MediaManager.Current.PropertyChanged += propertyChanged;
然后,这就是我要做的:
private void propertyChanged(object sender, System.ComponentModel.PropertyChangedEventArgs e)
{
if (e.PropertyName == "IsInitialized")
{
init();
}
}
我刚刚发现我的错误/解决方案,所以可能会有更优雅的解决方案。 但是我摆脱了例外-是的