无法在 swift 4 中使用 avaudioplayer 播放 http 音频

Posted

技术标签:

【中文标题】无法在 swift 4 中使用 avaudioplayer 播放 http 音频【英文标题】:Unable to play http audio using avaudioplayer in swift 4 【发布时间】:2020-06-08 00:52:15 【问题描述】:

我正在尝试使用 AVAudioPlayer 从 http url 播放简单的音频,但是出现了奇怪的错误。这是代码

func playSound() 

do 
   let  url = URL(string: "http://<domain>/stream")
    var player = AVAudioPlayer() //tied to initialize it as AVAudioPlayer! too
    player = try AVAudioPlayer(contentsOf: url!)

    player.prepareToPlay()
    player.play()

 catch let error as NSError 
    print(error.description)

错误:

AddInstanceForFactory: No factory registered for id <CFUUID 0x6000030f4b00> F8BB1C28-BAE8-11D6-9C31-00039315CD46
Error Domain=NSOSStatusErrorDomain Code=2003334207 "(null)"

【问题讨论】:

【参考方案1】:

你必须将播放器设为全局变量:

var player = AVAudioPlayer()
// ...
func playSound()  // ...

【讨论】:

感谢您的回复,不过,我已经尝试过了。没有帮助。

以上是关于无法在 swift 4 中使用 avaudioplayer 播放 http 音频的主要内容,如果未能解决你的问题,请参考以下文章

无法在 swift 4 中使用 avaudioplayer 播放 http 音频

Alamofire 4 请求返回 NSArray,无法弄清楚如何在 Swift 3 中使用 SwiftyJSON 进行解析

无法在 Alamofire 中禁用缓存(Xcode 9 - swift 4)

在 Swift 4 中使用新的 JSONDecoder 协议时,我得到“无法读取数据,因为它的格式不正确。”错误

无法在 swift 3 / FBSDK 4.17 中正确检索 FBSDKAccessToken 当前令牌

Xcode 9:使用 Swift 3.1 编译的模块无法在 Swift 4.0 中导入