SKAudioNode 不从 url 加载声音

Posted

技术标签:

【中文标题】SKAudioNode 不从 url 加载声音【英文标题】:SKAudioNode not load sound from url 【发布时间】:2016-10-11 08:34:16 【问题描述】:

我想从 url 下载声音并播放一次:

let sound = SKAudioNode(url:URL(string:"http://www.music.helsinki.fi/tmt/opetus/uusmedia/esim/a2002011001-e02-16kHz.wav")!)

sound.run(SKAction.play())

我也试过.mp3 音乐。它不会下载或流式传输并返回:nil

但是这段代码会导致错误:

由于未捕获的异常而终止应用 'com.apple.coreaudio.avfaudio',原因:'所需条件为假: 文件!=无' *** 首先抛出调用堆栈:....

libc++abi.dylib:以未捕获的类型异常终止 NSException

【问题讨论】:

cehck 一旦你到达这里是 nil 或输出 @Anbu.Karthik 是的,但为什么我得到零。音频存在... 检查这个网址(字符串:' @Anbu.Karthik : music.helsinki.fi/tmt/opetus/uusmedia/esim/… @Arti 你的问题现在解决了吗? 【参考方案1】:

我想你试试AVAudioPlayer

var resourcePath = url  //your url
var objectData = Data(contentsOf: NSURL(string: resourcePath)!)
var error: Error!
do 
    audioPlayer = try AVAudioPlayer(objectData)

catch let error 

audioPlayer.numberOfLoops = 0
audioPlayer.volume = 1.0
audioPlayer.prepareToPlay()
if audioPlayer == nil 
    print("\(error.description)")

else 
    audioPlayer.play()

【讨论】:

【参考方案2】:

我认为 URL 需要 os 是您的应用程序包中必须拥有的资源的 URL。将 mp3 文件放入您的项目中,然后执行此操作 -

let urlpath = Bundle.main.path(forResource: "[name of file]", ofType: "mp3")
let audioURL = NSURL.fileURL(withPath: urlpath!)

let sound = SKAudioNode(url: audioURL)

sound.run(SKAction.play())

【讨论】:

以上是关于SKAudioNode 不从 url 加载声音的主要内容,如果未能解决你的问题,请参考以下文章

ImageView 加载本地图像,但不从 URL

UIWebView 不从协议相对 URL 加载图像

离子不从 url wp-json 和 ionic4 加载图像

插入/拔出耳机时 SKAudioNode() 崩溃

Android不从间隔播放html5音频

不从 MainMenu.xib 加载窗口,而是加载另一个窗口