草庐IT

avplayeritem

全部标签

ios - AVPlayer/AVPlayerItem 返回播放错误太慢

如果服务器上没有文件(或另一个服务器错误)AVPlayer会返回错误5-10秒。如何设置超时?示例:letassetKeys=["playable","tracks","duration"]asset.loadValuesAsynchronouslyForKeys(assetKeys){varloaded=falseforassetKeyinassetKeys{varerror:NSError?letstatus=asset.statusOfValueForKey(assetKey,error:&error)loaded=status==.Loaded}if!loaded{//erro

ios - AVPlayer 和 AVPlayerItem 状态什么时候改变?

我正在使用AVFoundation在flutter中开发一个音乐播放器插件,我想在iOS和Android上创建一个统一的界面。我想捕获AVPlayer可能抛出的错误,例如,给定的AVPlayerItem无效(包含URL不受支持的文件,例如png文件)。我希望AVPlayer.replace()抛出异常或改变AVPlayerItem或AVPlayer的状态或至少一些相关通知在NSNotificationCeter上。我试着听/观察所有这些,但没有一个报告任何类型的错误。事实上,AVPlayer报告了“准备播放”状态。mediaPlayer=AVPlayer();playerItem=AV

ios - 当缓冲区已满并发送恢复时,AVPlayer 停止播放

我有一个CollectionView,在单元格内有一个AVPlayer,当-(void)scrollViewDidEndDecelerating:(UIScrollView*)scrollView被调用。这很好用,但问题是在AVPlayer播放该项目几次后,视频不再显示,但我可以听到它的声音。我还为每个像这样播放的项目添加了一个值@"playbackBufferFull"的观察者:[itemaddObserver:selfforKeyPath:@"playbackBufferFull"options:NSKeyValueObservingOptionNewcontext:nil];我注

ios - AVPlayer 不在后台加载媒体

在后台运行时,我的AVPlayer实现无法播放下载的音频(例如播客),但能够播放本地存储的歌曲。无法在后台播放只有当手机与我的电脑断开连接时。如果我的手机直接连接到我的计算机/调试器,则任何本地媒体或下载的媒体都可以毫无问题地播放。在前台,播放任何一种媒体类型也没有问题。这是我的实现:AVPlayer*moviePlayer;AVPlayerItem*playerItem;NSURL*address=/*theurlofeitheralocalsongorremotemedia*/if(moviePlayer!=nil){NSLog(@"removingrate,playbackBuf

ios - 如何监听 AVPlayer "on seek"事件?

我正在为AVPlayer/AVPlayerItem/AVAsset寻找任何与“seek”相关的事件有什么办法可以监听这样的事件吗?(也许是kvo-listeners的一些关键,不确定) 最佳答案 似乎有一个KVO的解决方法(如果是错误的决定请告诉我):case"currentItem.playbackBufferEmpty":if(player.rate==0){state="SEEKING"on_seeking()}case"currentItem.status":if(player.currentItem?.status==.R

ios - AVPlayer 错误与 url

我正在使用AVPlayer播放视频。但我的问题是,播放器发生了错误。而相同的url已经可以在Android设备和Safari网络浏览器中播放。如果这个url被另一个url替换,它工作正常。这是错误。player.error==========>>>>>>>>>>Optional(ErrorDomain=AVFoundationErrorDomainCode=-11848"CannotOpen"UserInfo={NSUnderlyingError=0x156d78f30{ErrorDomain=NSOSStatusErrorDomainCode=-12925"(null)"},NSLo

ios - AVPlayerItem step Count 仅向前平滑,但向后波动?

我已经实现了AVPlayerItem的stepByCount方法来逐帧手动浏览视频。这是前进1步的样子。AVPlayer*player=[AVPlayerplayerWithURL:url];[player.currentItemstepByCount:1];后退1步AVPlayer*player=[AVPlayerplayerWithURL:url];[player.currentItemstepByCount:-1];前进的1步(按时间帧逐帧前进)效果很好。但是,当我尝试逐帧向后移动时,它并不像前进那样平滑。我错过了什么吗?或者这是因为视频的编码方式——本来就应该向前看而不是向后看

iphone - nsinvalidargumentexception' 原因 'an avplayeritem cannot be associated with more than one instance of avplayer'

我正在使用MPMoviePlayerController用于播放视频,在此我使用自定义搜索栏来跳转视频。但是当我不断地向前和向后搜索时,应用程序崩溃并抛出以下错误:nsinvalidargumentexception'reason'anavplayeritemcannotbeassociatedwithmorethanoneinstanceofavplayer'所以请提出建议。谢谢 最佳答案 有同样的问题,尝试在设置SourceType后设置ContentURL,如下所示,moviePlayerController_=[[MPMov

ios - 如何从 AVAsset 或 AVPlayerItem 获取主 list 中的所有 HLS 变体?

给定一个包含多个变体/再现的HLSlist:#EXTM3U#EXT-X-VERSION:3#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=1612430,CODECS="avc1.4d0020,mp4a.40.5",RESOLUTION=640x360a.m3u8#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=3541136,CODECS="avc1.4d0020,mp4a.40.5",RESOLUTION=960x540b.m3u8#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=50

ios - 检测 AVQueuePlayer 中的当前项并知道它何时更改?

我目前有一个AVQueuePlayer按顺序播放几个.aif文件。当它通过每个音频时,我想执行与该特定声音相关的操作(例如更改ImageView的uiimage)。我的问题是正确设置NSNotification。我已将其设置为在队列完成最后一个对象时通知我,但我无法接收每个当前项目的通知。这是我所拥有的://SettingUpMyQueueListyellowVoice=[[AVPlayerItemalloc]initWithURL:[NSURLfileURLWithPath:[NSStringstringWithFormat:@"%@/YellowVoice.aif",[[NSBun