如何在swift中从服务器直播音频,其中包含单独的位置网址和资源网址?

时间:2016-02-19 13:22:05

标签: ios swift flash audio live-streaming

我正在从第三方API提供商(www.mndigital.com)开发音乐应用程序。 API提供商为每首歌曲提供30秒的演示。演示应用程序的位置以此格式提供

"SampleLocations": [
                {
                    "Location": "rtmp://mn-ecn-prd-rtmp.mndigital.com",
                    "Resource": "mp3:/spl/382/071/327/spl_024?48d882e51ff49ca3806e4b63d90b926556349db16cecf61947a8eb9a44f9bee3bf7d",
                    "Type": "s_mp3"
                },
                {
                    "Location": "rtmp://mn-ecn-prd-rtmp.mndigital.com",
                    "Resource": "mp4:/spl/382/071/327/spl_029.mp4?48d882e51ff49ca3806e4b63d90b926556349db16cecf61947a8eb9a44f9bee3bf7d",
                    "Type": "s_mp4"
                }
            ],

API提供商也表示,在条款和条件中,样本必须来自服务器streamed liveshould not be saved locally

经过几个小时的搜索后,我发现这种格式适用于在Flash播放器中播放音频。但在IOS中不支持Flash播放器。

即使AVPlayer工作,我们在更新的swift语法中只需要一个网址

do {
    let url = "http://yourdomain.com/file.mp3"
    let fileURL = NSURL(string:url)
    let soundData = NSData(contentsOfURL:fileURL!)
    self.audioPlayer = try AVAudioPlayer(data: soundData!)
    audioPlayer.prepareToPlay()
    audioPlayer.volume = 1.0
    audioPlayer.delegate = self
    audioPlayer.play()
} catch {
    print("Error getting the audio file")
}

所以我不知道如何快速传播这种网址。任何人都可以提出解决方案。

我使用的是swift 2.0 xcode 7.1.1。我的部署目标是IOS 8.0及以上

1 个答案:

答案 0 :(得分:1)

经过长时间的搜索,我发现rtmp文件无法在苹果设备中播放,因为苹果不支持闪存付款人。无法播放这些格式的URL提供的任何数据。