问题标签 [avplayeritem]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
ios - AVPlayer 因 AVPlayerItemStatusFailed 失败(OSStatus 错误 -12983)
有时 AVPlayer 失败AVPlayerItemStatusFailed
并在该失败发生后, AVPlayer 继续失败并出现AVPlayerItemStatusFailed
. 我试图清除 AVPlayer 实例并创建一个新实例,但我AVPlayerItemStatusFailed
无法解决失败。同样removingFromSuperview
UIView
使用 AVPlayer 实例并使用 AVPlayer 初始化新项目也不能解决问题。
所以我发现 AVPlayer 无法完全清除。有没有人建议尝试完全清除 AVPlayer 并使其在失败后工作?
错误日志:
UPD。 对于@matt
ios - forwardPlaybackEndTime 不起作用
AVPlayerItem
有这个属性forwardPlaybackEndTime
该值指示当播放速率为正时播放应结束的时间(请参阅 AVPlayer 的 rate 属性)。
默认值为kCMTimeInvalid,表示不指定正向播放的结束时间。在这种情况下,向前播放的有效结束时间是项目的持续时间。
但我不知道为什么它不起作用。我尝试将其设置为AVPlayerItemStatusReadyToPlay
,持续时间可用回调,...但它没有任何效果,它只是播放到最后
我认为这forwardPlaybackEndTime
是用来限制播放头的,对吧?在我的应用程序中,我只想从电影的开头播放到一半
我的代码看起来像这样
怎么forwardPlaybackEndTime
做作业?
iphone - 删除 AVPlayerItem 观察者
如果我使用 KVO 来观察我的播放器项目,如下所示:
两个问题:
1) 项目播放完毕后,我是否需要移除我的观察者?(即在AVPlayerItemDidPlayToEndTimeNotification
)
2)如果我打电话[_avQueuePlayer removeAllItems]
,它是否也会删除每个项目的观察者?
ios - 停止 AVPlayer 并重新启动 MP3 文件
我想启动、暂停和停止(与重新启动相同)我的 mp3 文件,我正在使用 AVPlayer。我从服务器获取文件。
要开始我做的这首歌:
暂停我做:
但是当我想停止歌曲并重新加载它,以便用户下次单击“开始按钮”时歌曲从头开始,我不知道该怎么做。
我试过这样的事情:
但是随后播放器当然为零,如果没有新的初始化,我将无法再次重新启动文件。任何想法如何阻止它?
ios - 反向搜索或清理视频流
我在我的应用程序中创建了一个擦洗器,允许用户通过 [AVPlayer seekToTime:toleranceBefore:toleranceAfter] 在视频中向前/向后擦洗。
正在清理的视频是通过使用 AVCaptureMovieFileOutput 的 AVCaptureSession 捕获的。我已经对生成的 .MOV 进行了 ffprobed 并且结果符合预期(例如,在我的 iPhone 5s 上,我以大约 23000 kb/s 的速度以 120fps 的速度录制,每秒大约 1 个关键帧)。
由于每秒只有大约 1 个关键帧,因此很难以任何精度且没有任何滞后的情况下向后滑动视频(因为它必须返回到最近的关键帧并在我当前的擦除位置计算帧)。
所以我想知道是否有更好的平滑擦洗策略?有一些应用程序可以很好地做到这一点(例如,我检查了 Coach's Eye 应用程序,它录制视频的方式与我完全相同,但它的擦洗性能非常好)。
我会非常感谢任何建议。
ios - AVPlayer 被解除分配,而键值观察者仍向其注册
我正在创建一个简单的媒体播放器应用程序。播放第一个链接并单击 uitableview 中的第二个链接时,我的应用程序崩溃了。
当应用程序崩溃时,我收到了这条消息。
*** 由于未捕获的异常“NSInternalInconsistencyException”而终止应用程序,原因:“AVPlayer 类的实例 0x165297c0 已被释放,而键值观察者仍向其注册。当前观察信息:(上下文:0x0,属性:0x1661d5d0>)'
应用程序在 IOS 7 中仅在 IOS 8 中崩溃工作正常。 我做错了什么??
ios8 - AVPlayerItemDidPlayToEndTimeNotification 没有被 iOS 8 调用
我有上述通知设置。当我用 iOS 7 运行测试时,它被调用得非常好,但是,我用 iOS 8 运行我的应用程序时,它从来没有被调用过。
objective-c - 终止应用程序原因:“AVPlayer 的实例无法删除由 AVPlayer 的不同实例添加的时间观察者。”
我正在使用 Apple 的文档演示。这是演示的链接: AVPlayerDemo
在执行以下步骤后,我的应用程序崩溃了:
1)播放歌曲
2)从搜索栏快进。
3)点击下一步,4)从搜索栏快进。
这是我的崩溃日志:
由于未捕获的异常“NSInvalidArgumentException”而终止应用程序,原因:“AVPlayer 的实例无法删除由 AVPlayer 的不同实例添加的时间观察者。”
这是音乐播放器的代码:
ios - AVPlayer 不会从仅音频切换到视频流
我正在使用 AVPlayer 播放 HTTP Live 流。我经常观察到 AVPlayer 在网络低时切换到仅音频模式,但是当网络恢复到高时,它不会切换到视频流或切换到视频流需要很长时间。
我做了一个测试,通过在我的 iPad 中使用“网络链接调节器”模拟低网络条件来密切观察行为,我的观察结果是相同的,即 AVPlayer 不会切换到视频流或需要很长时间。
还有其他人面临这个问题吗?还是我做错了什么?
提前致谢, 瓦苏
avplayer - 是否可以知道 AVPlayerItem 缓冲区是否已停止缓冲并且不会恢复
我已经为playbackLikelyToKeepUp 和playbackBufferEmpty 实现了KVO,并且还为AVPlayerItemPlaybackStalledNotification 通知添加了一个观察者。
我正在使用 Buffer Empty 和 Keep up 事件来显示/隐藏我的缓冲活动指示器,如果我收到 Playback Stalled 通知,我会在播放器上显示一条错误消息,直到我让 Keep Up 事件返回 true;我注意到有时在停顿后,缓冲区不会尝试恢复播放。此外,寻找播放头将解决此问题。
播放器有什么方法可以自动保持缓冲,或者让我知道缓冲是否完全停止并且不会继续尝试播放?
我已经对日志进行了注释以显示此功能。