AvPlayer 正在下载 mp3 而不是流式传输
Posted
技术标签:
【中文标题】AvPlayer 正在下载 mp3 而不是流式传输【英文标题】:AvPlayer is downloading mp3 instead of streaming 【发布时间】:2019-09-24 06:30:26 【问题描述】:当我想流式传输 mp3 文件时,我正在创建一个应用程序。我正在使用 AvPlayer 类。 当我创建 avplayer 实例时,我将文件 uri 放入构造函数中,例如:
_player = AVPlayer.FromUrl(NSUrl.FromString("Url");
_player.Play();
这是一个 c# 代码,但我认为它与 swift 非常相似。 当我调用播放方法时,mp3 文件正在下载而不是流式传输。我尝试播放长 mp3 文件(大约 50 分钟)并且加载确实需要很长时间。加载结束时,播放 mp3,但是当我关闭互联网连接并搜索到最后时,播放继续。
我如何告诉 avplayer 他必须流式传输。 我发现了一个 SO 问题 Why AVPlayer downloading first instead live streaming? 但没有解决方案。
android MediaPlayer 流式传输此 mp3 没有任何问题。
【问题讨论】:
Xamarin 论坛有一个例子,检查github.com/xamarin/ios-samples/tree/master/StreamingAudio ***.com/a/19791333/4984832 @PrakashShaiva 我找到了那个,但如果可能的话我想使用 AvPlayer。 @SushiHangover 这是一个七岁的答案。这仍然有效吗? 【参考方案1】:从 iOS 10 开始,将AutomaticallyWaitsToMinimizeStalling
设置为false
或自定义延迟时间:
public override void ViewDidLoad ()
base.ViewDidLoad ();
// Perform any additional setup after loading the view, typically from a nib.
AVPlayerItem item = new AVPlayerItem(new NSUrl("https://www.soundhelix.com/examples/mp3/SoundHelix-Song-1.mp3"));
AVPlayer _player = new AVPlayer(item);
_player.AutomaticallyWaitsToMinimizeStalling = false;
_player.Play();
参考:avplayer-stops-playing-video-after-buffering
【讨论】:
以上是关于AvPlayer 正在下载 mp3 而不是流式传输的主要内容,如果未能解决你的问题,请参考以下文章
通过 AvPlayerItem 和 AvPlayer 流式传输时监控下载的字节数 - iOS