即使链接似乎正确,也无法通过 AVPlayer 打开远程音频文件

Posted

技术标签:

【中文标题】即使链接似乎正确,也无法通过 AVPlayer 打开远程音频文件【英文标题】:Unable to open remote audio file via AVPlayer, even though the link seems to be correct 【发布时间】:2014-03-12 06:36:20 【问题描述】:

我正在尝试构建一个简单的流应用程序,现在我正在使用这个简单的代码 sn-p 向 AVPlayer 提供一个文件的直接链接(例如 this one):

_player = [AVPlayer playerWithURL:[NSURL  URLWithString:@"(file url here)"]];

[_player play];

但是,它什么也没播放,所以我尝试了 The Amazing Audio Engine 之类的第 3 方组件,但出现以下错误:

AEAudioFileLoaderOperation.m:121: ExtAudioFileOpenURL result -43

据我了解,它无法通过提供的 url 打开文件。但是,我尝试在浏览器中打开相同的 url,它运行良好(即使在设备上)。

我应该在哪里寻找这个错误的根源?还有其他方法可以播放/提供 mp3 文件以进行流式传输吗?

【问题讨论】:

【参考方案1】:

试试AVAudioPlayer。如果您的项目启用了 ARC,则不应将播放器声明为局部变量。它应该被声明为一个属性。否则,ARC 将在播放器有机会播放之前解除分配。

【讨论】:

啊,我的错,我确实将它用作属性,我将更改上面的代码 但是,根据我的阅读,AVAudioPlayer 不应该用于远程文件,因此 AVPlayer 哎呀,你是绝对正确的。我只将它与文件一起使用。 developer.apple.com/library/ios/qa/qa1634/_index.html【参考方案2】:

请忽略这个问题,我刚刚意识到我打开了静音模式,实际上一切正常。在我的辩护中,我应该说摇动音量按钮不会做出任何改变,你必须首先以某种方式关闭静音模式。

【讨论】:

【参考方案3】:

来自 Apple 文档:要为文件系统路径创建 NSURL 对象,请改用 fileURLWithPath:isDirectory:

【讨论】:

以上是关于即使链接似乎正确,也无法通过 AVPlayer 打开远程音频文件的主要内容,如果未能解决你的问题,请参考以下文章

AVPlayer 暂停后无法继续播放

页面无法识别?

似乎无法将密钥发送到调试视图

设备自动锁定时,AVPlayer 无法在 iPad 上运行

即使 UV-Mapping 非常适合,Blender 纹理在反复烘烤后也无法正确显示

即使没有进入无限循环,这段代码似乎也永远无法解决