在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文件的主要内容,如果未能解决你的问题,请参考以下文章

在 C 中通过套接字发送 mp3 文件

Gstreamer Gstreamer中通过UDP(RTP)远程播放MP3

在ios中播放mp3文件失败[重复]

在 iOS 上播放 MP3 或 AAC 文件都有哪些音频播放选项?

iOS - mp3 文件不播放,没有错误?

iOS - 尝试播放 mp3 文件失败