Error Domain=AVFoundationErrorDomain Code=-11850 "操作停止

在調(diào)試視頻時(shí)出現(xiàn)黑屏的情況,然后發(fā)現(xiàn)是 AVPlayerItemStatusFailed 的,通過(guò)打印 item.error 得到 Error Domain=AVFoundationErrorDomain Code=-11850 "操作停止" 的錯(cuò)誤提示。

基本上網(wǎng)絡(luò)上給出的都是 Domain=AVFoundationErrorDomain Code=-11850操作停止如何解決 的解答,通過(guò)聯(lián)系服務(wù)商進(jìn)行了解決,如果自己處理視頻的請(qǐng)自行聯(lián)系服務(wù)端人員解決。

然而我這邊不一樣,我發(fā)現(xiàn)是 是 AVPlayerItem 初始化用法不同

[AVPlayerItem playerItemWithAsset:asset];
[[AVPlayerItem alloc] initWithURL:localVideoUrl];

用了前者,發(fā)現(xiàn)就是有這個(gè)問(wèn)題,后者沒(méi)有。

進(jìn)一步發(fā)現(xiàn)是我們項(xiàng)目中,用了AVURLAssetPreferPreciseDurationAndTimingKey這個(gè) key . 這個(gè)key對(duì)應(yīng)的value是一個(gè)布爾值, 用來(lái)表明資源是否需要為時(shí)長(zhǎng)的精確展示,以及隨機(jī)時(shí)間內(nèi)容的讀取進(jìn)行提前準(zhǔn)備.

然而實(shí)際告訴以上不同,都不是。

+ (NSURL *)fileURLWithPath:(NSString *)path; 
+ (nullable instancetype)URLWithString:(NSString *)URLString

前者會(huì)自動(dòng)帶上 file:// 的前綴的,所以一般我們作如下區(qū)別

  • 訪問(wèn)的是本地資源,而且不包含協(xié)議頭,使用fileURLWithPath創(chuàng)建URL
  • 使用fileURLWithPath創(chuàng)建URL時(shí),不用擔(dān)心URL中混有中文的問(wèn)題,系統(tǒng)會(huì)自動(dòng)實(shí)現(xiàn)轉(zhuǎn)換

我這邊是引用本地的鏈接,所以應(yīng)該是自己用 fileURLWithPath, 問(wèn)題到此才找到答案的。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容