我正在开发一个来自第三方 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 提供商在条款和条件中表示,样本必须从服务器实时流式传输
,并且不应保存在本地
。
经过几个小时的搜索,我发现这种格式用于在 Flash 播放器中播放音频。但在 IOS 中不支持 flash 播放器。
即使要让 AVPlayer
工作,我们也只需要更新后的 swift 语法中的一个 url
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及以上
最佳答案
经过长时间的搜索,我发现 rtmp 文件无法在苹果设备上播放,因为苹果不支持 flash payers。无法播放这些格式的 URL 提供的任何数据。
关于ios - 如何在具有单独位置 url 和资源 url 的 swift 中从服务器直播音频?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35506380/