我收到 mp3 url 作为 API 调用的响应。
我想播放该音频,那么我该怎么做呢?
这是我的回应
{
content = "En este primer programa se tratar\U00e1n asuntos tan importante como este y aquel sin descuidar un poco de todo lo dem\U00e1s";
file = "http://radio.spainmedia.es/wp-content/uploads/2015/12/ogilvy.mp3";
image = "http://radio.spainmedia.es/wp-content/uploads/2015/12/tapas.jpg";
number = 0001;
subtitle = Titulareando;
title = "Tapa 1";
}
这是我的代码:
@IBAction func btnplayaudio(sender: AnyObject) {
let urlstring = "http://radio.spainmedia.es/wp-content/uploads/2015/12/tailtoddle_lo4.mp3"
let url = NSURL(string: urlstring)
print("the url = \(url!)")
play(url!)
}
func play(url:NSURL) {
print("playing \(url)")
do {
self.player = try AVAudioPlayer(contentsOfURL: url)
player.prepareToPlay()
player.volume = 1.0
player.play()
} catch let error as NSError {
self.player = nil
print(error.localizedDescription)
} catch {
print("AVAudioPlayer init failed")
}
}
我哪里错了?
Use AVPlayer https://developer.apple.com/library/ios/documentation/AVFoundation/Reference/AVPlayer_Class/而不是 AVAudioPlayer 来播放远程内容。根据文档 AVAudioPlayer 需要 mp3 文件才能播放音频。 AVAudioPlayer 不提供支持流媒体 https://developer.apple.com/library/ios/qa/qa1634/_index.html.
试试这个代码,它对我来说工作正常
func play(url:NSURL) {
print("playing \(url)")
do {
let playerItem = AVPlayerItem(URL: url)
self.player = try AVPlayer(playerItem:playerItem)
player!.volume = 1.0
player!.play()
} catch let error as NSError {
self.player = nil
print(error.localizedDescription)
} catch {
print("AVAudioPlayer init failed")
}
}
请记住在 info.plist 文件中设置应用程序传输安全性(ATS)。
<key>NSAppTransportSecurity</key>
<dict>
<key>NSAllowsArbitraryLoads</key>
<true/>
</dict>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)