【问题标题】:Looking for simple code to play streaming audio by HTTP from m3u寻找简单的代码来通过来自 m3u 的 HTTP 播放流音频
【发布时间】:2012-10-08 15:58:44
【问题描述】:

我正在寻找 iOS 的示例代码(我猜是使用 AVMediaPlayer 或 AVPlayer)来播放来自 URL 的流式音频(我们当前的服务器 URL 是 http://server.local:8008/ourradio.aac.m3u)。

当应用程序处于后台模式时,也应该播放音频流。

【问题讨论】:

    标签: ios audio-streaming


    【解决方案1】:

    M3U 是一种播放列表格式。它是一个纯文本文件,包含音乐文件的位置,尤其是 MP3 文件。阅读Wikipedia Article about M3U。如果您真的想在 iPhone 上播放每个 MP3,请使用它:

    AVPlayer *musicPlayer = [AVPlayer playerWithURL:musicLinkFromM3uFile];
    [musicPlayer play];
    

    其中musicLinkFromM3uFile是从m3u文件中读取的MP3文件的位置。

    编辑:为了能够继续在后台播放,您需要设置一个类别为 kAudioSessionCategory_MediaPlayback 的音频会话。为此,请将以下代码行添加到应用委托中的 applicationDidLoad:

    UInt32 sessionCategory = kAudioSessionCategory_MediaPlayback;
    AudioSessionSetProperty(kAudioSessionProperty_AudioCategory, sizeof(sessionCategory), &sessionCategory);
    

    您还需要将 Info.plist 中的 UIBackgroundModes 设置为 audio

    【讨论】:

    • 哦,对不起。 AVAudioPlayer 不支持通过 HTTP 流式传输。尝试改用 AVPlayer。
    • 也许,你有一些样品?
    • 我已经编辑了我的答案,看看它。但要让它真正正常工作,你必须阅读 AVPlayer 类参考,因为错误处理比 AVAudioPlayer 更难。
    【解决方案2】:
    NSString *urlAddress = @"http://www.mysite.com/test.mp3";
    urlStream = [NSURL URLWithString:urlAddress];   
    self.player = [AVPlayer playerWithURL:urlStream];   
    [player play];
    

    【讨论】:

    • m3u 和 .mp3 是不同的@alexandresoli
    猜你喜欢
    • 1970-01-01
    • 2018-07-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-02
    • 2019-12-12
    • 1970-01-01
    • 2013-09-18
    相关资源
    最近更新 更多