【问题标题】:Swift.Streaming audio from url with error code -999 "cancelled"来自 url 的 Swift.Streaming 音频,错误代码 -999 “已取消”
【发布时间】:2019-05-29 07:54:19
【问题描述】:

这是我的代码:

var playering = AVPlayer()


private func streamAudio(url: String) {
    guard let url = URL(string: url) else {return}
    let playerItems = AVPlayerItem(url: url)
    ReportVC.playering = AVPlayer(playerItem: playerItems)
    ReportVC.playering.play()
}

我在 viewDidLoad() 方法中调用 streamAudio,如下所示:

self.streamAudio(url: "https://stage.careandcarers.com/file/get/0b710400-4454-4a46-9ed5-8a542f046ed8.m4a")

但我在控制台中收到此错误:

2019-05-29 12:19:32.940076+0430 CC[13305:463451] 任务 . 加载失败,错误域=NSURLErrorDomain Code=-999“取消” UserInfo={NSErrorFailingURLStringKey=https://stage.careandcarers.com/file/get/0b710400-4454-4a46-9ed5-8a542f046ed8.m4a, NSErrorFailingURLKey=https://stage.careandcarers.com/file/get/0b710400-4454-4a46-9ed5-8a542f046ed8.m4a, _NSURLErrorRelatedURLSessionTaskErrorKey=( “本地数据任务 .” ), _NSURLErrorFailingURLSessionTaskErrorKey=LocalDataTask ., NSLocalizedDescription=cancelled} [-999] 2019-05-29 12:19:32.943557+0430 CC[13305:460502] 任务 . 完成错误 - 代码:-999 2019-05-29 12:19:32.943604+0430 CC[13305:461457] TIC 读取状态 [5:0x0]: 1:57

有什么问题?

【问题讨论】:

  • 我在操场上测试过,它似乎可以工作。发生此代码= -999 的情况是在处理异步加载时。你能分享ReportVC代码吗?因为您使用的是您在顶部声明的播放器
  • ReportVC 很大而且很乱。你想看哪一部分?
  • 我想看看您如何在此处声明 playering,因为在下载音频内容之前可能会释放某些内容。我尝试在流式传输音频时在本地声明 playering 并且它可以工作。所以尝试在 streamAudio 中声明一个新播放器并告诉我它是否有效
  • 我将网址更改为示例 MP3 网址,它工作得很好。有没有可能是 m4a 格式的问题?

标签: swift streaming avaudioplayer


【解决方案1】:

试试看:

func streamPlay(streamUrl : string){
let playerItem = AVPlayerItem( url:NSURL( string: streamUrl )! as URL )
        player = AVPlayer(playerItem:playerItem)
        player!.rate = 1.0;
        //isplay is a bool variable that indicate your stream playing is in process or not(default value = false)
        if isPlay{

            player!.pause()
            //playDemo is button that you use to stream play
            playDemo!.setImage(UIImage(named: "playBtn"), for: UIControl.State.normal)
            playDemo!.setTitle("Pause", for: UIControl.State.normal)
            isPlay = false

        }else{

            player!.play()
            playDemo!.setImage(UIImage(named: "media_pause"), for: UIControl.State.normal)
            playDemo!.setTitle("play", for: UIControl.State.normal)
            isPlay = true
        }
}

在你看来DidLoad:

 let url = "https://stage.careandcarers.com/file/get/0b710400-4454-4a46-9ed5-8a542f046ed8.m4a"
 streamPlay(streamUrl : url)

【讨论】:

  • 同样的错误,我认为我的代码很好。还有其他问题。
  • 我将网址更改为示例 MP3 网址,它工作得很好。有没有可能是 m4a 格式的问题?
  • 也许如果它们被编码为 AMR_NB,它们需要被编码为 AAC。
猜你喜欢
  • 1970-01-01
  • 2017-03-19
  • 2021-10-24
  • 2017-03-14
  • 1970-01-01
  • 2020-02-22
  • 1970-01-01
  • 2019-04-22
  • 1970-01-01
相关资源
最近更新 更多