Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 如何在swift的avaudioplayer中添加url_Ios_Swift - Fatal编程技术网

Ios 如何在swift的avaudioplayer中添加url

Ios 如何在swift的avaudioplayer中添加url,ios,swift,Ios,Swift,我只是想问一下如何使用url链接播放音频 我收到一个错误的请求。。有人能帮我吗 我已经试过使用avplayer,但它不适合我。。虽然它在工作,但是。。我比较喜欢使用avaudioplayer let mp3URL = NSURL(fileURLWithPath:"https://s3.amazonaws.com/kargopolov/kukushka.mp3") do { // 2 audioPlayer = try AVAudioPlayer(c

我只是想问一下如何使用url链接播放音频

我收到一个错误的请求。。有人能帮我吗

我已经试过使用avplayer,但它不适合我。。虽然它在工作,但是。。我比较喜欢使用avaudioplayer

    let mp3URL = NSURL(fileURLWithPath:"https://s3.amazonaws.com/kargopolov/kukushka.mp3")
    do {
        // 2
        audioPlayer = try AVAudioPlayer(contentsOf: mp3URL as URL)
        audioPlayer.play()
        // 3
        Timer.scheduledTimer(timeInterval: 1.0, target: self, selector: #selector(updateAudioProgressView), userInfo: nil, repeats: true)
        progressView.setProgress(Float(audioPlayer.currentTime/audioPlayer.duration), animated: false)
    }
    catch {
            print("An error occurred while trying to extract audio file")
    }
无论如何,您应该了解ios的基本知识,如果您想通过internet播放音频(尚未下载到磁盘或内存),您应该使用

文档将AVAudioPlayer描述为

一种音频播放器,用于从文件或存储器中回放音频数据

再往下一点,在概述部分,重点补充了:

将此类用于音频播放,除非您正在播放从网络流捕获的音频或需要非常低的I/O延迟


笔记
  • 通过访问连接失败时抛出的错误对象,可以从运行时获取更多信息。将
    catch{
    更改为
    catch let error{
    ,然后您可以将错误作为消息的一部分注销,如下所示:
  • 当我使用上面提到的更改在Xcode操场中运行您的示例代码时,我看到以下内容:
  • 尝试提取音频文件时出错:错误域=NSOSStatusErrorDomain代码=2003334207“(空)”

  • 请注意错误的
    代码
    。会产生一些结果,表明URL可能无法正确解析。(实际上,单击该mp3链接会显示错误的访问错误消息。)
  • 第一个结果是类似的问题。第二个结果是包含更多信息的

    让我们尝试将URL更改为可公开访问的示例mp3文件

  • 您需要将
    NSURL
    更改为
    URL
    ,而不是
    fileURLWithPath
    ,您需要使用另一个初始值设定项。(例如,
    string:

  • 每当您在媒体或文件API中看到
    内容…:
    时,很有可能它需要数据或文件,而不需要网络流。类似地,当您看到采用
    文件URL…
    的初始值设定项或方法时,系统希望指向本地资源,而不是网络URL


  • 仅供参考-不要在Swift中使用
    NSURL
    ,使用
    URL
    。仍然收到错误的请求,先生。因此,我将let mp3URL=NSURL(fileURLWithPath:)更改为let mp3URL=URL(fileURLWithPath:),但仍然收到错误的请求我的评论并不是一个解决方案,因此出现了“FYI”.仍然收到错误的请求fyi-你不需要
    让错误
    ,只要}catch{print(error)}`。我已经收到了..谢谢陛下的帮助..所以我所做的一切都是错的:D:D..bdw谢谢大家
    
    if let mp3URL = URL(string: "https://s3.amazonaws.com/kargopolov/kukushka.mp3"){
            // do s.t
    }   
    
    catch let error{
        print("An error occurred while trying to extract audio file: \(error)")
    }