在IOS中通过http播放mp3文件
Posted
技术标签:
【中文标题】在IOS中通过http播放mp3文件【英文标题】:Playing mp3 files over http in IOS 【发布时间】:2012-03-11 12:06:45 【问题描述】:如果这个问题已经得到解答,请原谅我,相信我,我已经看到了太多答案,但找不到我能找到的答案完全符合我的需要。 我的网络服务器上有一堆 mp3 文件。 我想要一个 ios 应用程序连接到我的服务器并流式传输 mp3 文件。我不需要直播,我不想下载文件并在本地播放。 我创建了一个 m3u 文件,我可以从浏览器指向它,它会播放文件,但是当我使用 Apple 的 MovePlayer 示例代码时,它无法播放文件!
如常提供任何帮助,我们将不胜感激。
【问题讨论】:
【参考方案1】:我个人不知道如何设置MPMoviePlayer
来播放.m3u 文件,但是如果您可以使用mp3 完成相同的任务,使用AVAudioFoundation
可以轻松完成。
-(IBAction)playStreamMP3:(id)sender
NSData *fetchedData = [[NSData alloc] initWithContentsOfURL:[NSURL URLWithString:@"http://mysite.com/mysounds.mp3"]];
if (data)
[data stop]; //data is an iVar holding any existing playing music
data = nil;
data = [[AVAudioPlayer alloc] initWithData:fetchedData error:nil];
data.delegate = self;
[data play];
【讨论】:
简单而正是我所需要的!假设这使用http缓冲是否安全?并且使用它的应用程序不会被苹果拒绝? 我相信这是一个安全的假设,他们不应该给你任何麻烦! 请阅读:developer.apple.com/library/ios/#qa/qa1634/_index.html#//… 看来苹果不赞成将 AVAudioPlayer 用于 http 流媒体,仅推荐用于本地文件播放。我一直在寻找。【参考方案2】:我不认为 Apple 的 MPMoviePlayerController
处理 .m3u 文件格式,但它不是一种复杂的格式,您始终可以解析播放列表并将实际的 mp3 url 提供给它。
【讨论】:
那是怎么做的?我不想下载 mp3 文件。我想流式传输文件。我可以直接去mp3,我只是以为m3u8是要走的路!以上是关于在IOS中通过http播放mp3文件的主要内容,如果未能解决你的问题,请参考以下文章
Gstreamer Gstreamer中通过UDP(RTP)远程播放MP3