来自 url 的 Swift.Streaming 音频,错误代码 -999 “已取消”
Posted
技术标签:
【中文标题】来自 url 的 Swift.Streaming 音频,错误代码 -999 “已取消”【英文标题】:Swift.Streaming audio from url with error code -999 "cancelled" 【发布时间】: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 格式的问题?
【参考方案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。以上是关于来自 url 的 Swift.Streaming 音频,错误代码 -999 “已取消”的主要内容,如果未能解决你的问题,请参考以下文章
无法在android的videoview中播放来自url的视频如何在videoview中播放来自URL的视频?
来自 C# 中的基本 URL + 相对 URL 的绝对 URL