iOS 流媒体 mp3

Posted

技术标签:

【中文标题】iOS 流媒体 mp3【英文标题】:iOS Streaming mp3 【发布时间】:2014-05-20 08:42:50 【问题描述】:

我一直在寻找播放和流式传输音频的好教程,最后我找到了this,它似乎提供了离线音频播放。

在 YMCAudioPlayer 类中,我评论了加载资源并提供了由直接链接生成的 NSURL*,而不是像这样。

- (void)initPlayer:(NSString*) audioFile fileExtension:(NSString*)fileExtension

    //NSURL *audioFileLocationURL = [[NSBundle mainBundle] URLForResource:audioFile withExtension:fileExtension];
    NSURL *audioFileLocationURL = [NSURL URLWithString:@"http://188.95.64.47/AghaninaDownload/Content/per_singer/JFire/Audios/J-FirE_and_Omar_khalid_wlaKelmeh-sample.mp3"];
    NSError *error;
    self.audioPlayer = [[AVAudioPlayer alloc] initWithContentsOfURL:audioFileLocationURL error:&error];

我已经确保它是一个有效的链接,但似乎不能在模拟器上播放。我错过了什么?

编辑

它会产生以下错误

 Error Domain=NSOSStatusErrorDomain Code=-43 "The operation couldn’t be completed. (OSStatus error -43.)

【问题讨论】:

为什么不在流媒体播放时下载磁盘上的 mp3 希望这对你有帮助 developer.apple.com/library/mac/documentation/Cocoa/Conceptual/… 不是有直接流的方式而不是下载播放吗? 【参考方案1】:

可能是一个愚蠢的问题,但你让它发挥了吗?

[self.audioPlayer 播放];

然后我会试试这个,以确保您的设置正确:

[self.audioPlayer prepareToPlay];

[self.audioPlayer setCurrentTime:0.0];

[self.audioPlayer setVolume:1.0];

[self.audioPlayer play];

您也可以使用 AVAudioPlayer 的委托来检查播放时是否发生了什么。

否则可能是格式问题的 URL。

【讨论】:

在按钮上调用播放 也许你应该在你的初始化错误中打印错误。【参考方案2】:

我认为您无法在 EMULATOR 上播放音频,您必须在设备上进行测试。

这里提到了苹果开发者指南 -

https://developer.apple.com/library/ios/documentation/IDEs/Conceptual/iOS_Simulator_Guide/TestingontheiOSSimulator/TestingontheiOSSimulator.html#//apple_ref/doc/uid/TP40012848-CH4-SW1

【讨论】:

这是真的吗?你有资源吗?【参考方案3】:

我在the accepted answer here找到了答案

“我能够通过首先将文件加载到 NSData 元素中然后使用它来初始化 AVAudioPlayer 来解决此问题,如下所示:”

NSData *songFile = [[NSData alloc] initWithContentsOfURL:songCacheURL options:NSDataReadingMappedIfSafe error:&error1 ];
self.audioPlayer = [[AVAudioPlayer alloc] initWithData:songFile error:&error2];

【讨论】:

这是一个可怕的解决方案,您根本不会使用此变体进行流式传输。甚至没有渐进式下载播放。切换到 AVPlayer 而不是 AVAudioPlayer,因为后者不支持 HTTP 流,但前者支持。

以上是关于iOS 流媒体 mp3的主要内容,如果未能解决你的问题,请参考以下文章

Ionic 媒体插件无法在 iOS 上播放本地存储的 mp3 文件

未处理的 IO 异常?使用媒体播放器播放 mp3 文件 - Android

iOS多媒体总结

使用 ExtAudioFileWrite ios 将流式 mp3 数据包的缓冲区写入 wav 文件

使用 Go 从 SoundCloud MP3 流媒体 URL 播放?

媒体播放器文件未找到异常