[英]How to convert .ogg file to .mp3/.caf to play in AVPlayer?
[英]Can't play mp3 file over HTTP via AVPlayer
我正在尝试通过AVPlayer播放MP3文件:
let url = URL(string: "http://transom.org/wp-content/uploads/2004/03/stereo_40kbps.mp3?_=7")!
let asset = AVURLAsset(url: url)
let item = AVPlayerItem(asset: asset)
let player = AVPlayer(playerItem: item)
player.play()
但是我得到了下一个日志:
2017-09-26 21:57:07.906598+0300 MyApp[7558:1177816] CredStore - performQuery - Error copying matching creds. Error=-25300, query={
class = inet;
"m_Limit" = "m_LimitAll";
"r_Attributes" = 1;
sync = syna;
}
我想这是因为iOS 11和Xcode 9,但我不知道如何解决这个问题。
问题似乎与App Transport安全性有关,启用后,它在iOS 11中使用以下几组代码工作正常,
您提供的上述URL似乎也有关联的https链接,请使用https链接或允许App Transport安全性
let avPlayerVC = AVPlayerViewController()
let url = URL(string: "https://transom.org/wp-content/uploads/2004/03/stereo_40kbps.mp3?_=7")!
let asset = AVURLAsset(url: url)
let item = AVPlayerItem(asset: asset)
let player = AVPlayer(playerItem: item)
avPlayerVC.player = player
present(avPlayerVC, animated: true) {
player.play()
}
但是在这里我使用了AVPlayerViewController,并使用了与代码中使用的AVPlayer相同的实例。
我不知道你是如何在你的情况下使用AVPlayer,但上述情况工作正常。
同样的错误。
我已经解决了服务器端的工作。
从http响应中删除HSTS标题“Strict-Transport-Security:max-age = 31536000”,消失错误并正常工作。 我不知道原因..
请求: https://abc.../aaaa.mp3
我遇到了同样的问题,我们试图将服务器端的所有标头设置为非活动/活动状态
最后,未unset range
设置为inactive
,然后它起作用。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.