问题标签 [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/AVPlayerItem。
如何实施?
ios - 从本地 URL 加载 AVPlayerItem 的问题
我正在使用 AVPlayer 开发自定义视频播放器。我在缓存文件夹 (NSCache) 中加载存储在本地文件系统中的视频。我像这样初始化播放器:
这通常工作正常。但是,由于此错误,我经常在 AVPlayerItem 的状态上失败:
奇怪的是,失败的相同 URL 有时会在失败之前和之后不久工作。我会说每 10 次加载尝试都会失败。我不知道是什么原因造成的,也不知道在哪里寻找答案。搜索错误代码对我来说是空的。非常感谢任何帮助或指示。
ios - 离开 AVPlayer 视图后如何停止下载流式 HLS 视频?
我正在尝试使用 AVPlayer 播放 HLS 流。播放器可以正常播放流,但是,在离开播放器视图后,它似乎并没有停止为 HLS 流下载数据。离开 AVPlayer 视图后,我在状态栏上看到了一个网络数据微调器几分钟。
我已经尝试过cancelPendingSeeks
, cancelLoading
,并尝试AVPlayerLayer
使用 从其超层中删除removeFromSuperLayer
,但是,这些似乎都不能解决问题 - 状态栏上仍然有一个微调器。
在实际设备上可以看到此微调器,但模拟器上没有微调器。我确定正在下载视频;我可以在网络监控应用程序中查看数据使用情况。我怎样才能解决这个问题?
ios - 在 iOS 中播放视频时处理字幕
我需要对出现在屏幕上的本地(或远程)视频文件的字幕进行一些文本处理。目前我正在使用AVPlayerItem
并查看它的资产,我可以看到有一个隐藏字幕轨道,但我无法获得实际的字幕文本。所以问题是我怎样才能得到字幕轨道的实际文本,当它们显示时(最好是快速的)。
ios - AVPlayer 在缓冲区已满并重新开始时停止播放
我有一个AVPlayer
在单元格内部的集合视图,并且在循环播放时AVPlayer
开始播放AVPlayerItem
被调用。这很好用,但问题是在AVPlayer
播放项目几次后,视频不再显示,但我能听到它的声音。@"playbackBufferFull"
我还为每个播放的项目的值添加了一个观察者:
我注意到,当视频停止时,值的观察者方法@"playbackBufferFull"
被调用,首先我想知道是什么导致缓冲区变满,第二个也是最重要的是如何AVPlayer
在视频停止时恢复;我尝试调用[cell.videoPlayer play];
并用新的项目替换该项目,但它不起作用,观察者方法:
ios - 即使 rate 属性为 0,AVPlayer 仍在播放
This other SO post建议当rate
an的属性为AVPlayer
0时,这意味着AVPlayer
不再播放。我们使用下面的观察者代码来循环视频,但有时pause
在播放器上调用该函数无法中断循环。调试时,该rate
属性的计算结果为 0。
1) 链接的 SO 帖子是否错误,因为速率值为 0 并不意味着播放器已暂停?
2)连续循环,即使在调用函数之后,在通知已经发出之后函数出现的pause
某种竞争条件?pause
playerItemDidReachEnd
ios - AVPlayerItem 可以在搜索之前加载一个时间范围吗?
我需要使用 AVPlayer 播放 HLS 视频进行快速搜索。AVPlayerItem 上的标准 seekToTime 方法工作正常,但在搜索时会有明显的延迟,除非搜索点的视频已经加载 - 正如您所期望的那样。
是否可以在搜索之前在特定时间范围内预加载视频,以便后续搜索更快?对于这个用例,具体的搜索点是预先知道的,搜索点的相关视频片段约为 10 秒。
目前,此功能是通过将搜索点处的每段视频切割成自己的 MP4 文件并使用 AVQueuePlayer 在每段之间连续播放来实现的。但这并不理想,有几个原因,我们正在寻找使用单个大型视频文件的方法,并改进搜索处理。
我已经阅读了所有 AVPlayer/AVPlayerItem API 文档,但看不到这样做的方法。
有任何想法吗?也许这需要使用 AVPlayer 以外的东西?
iOS8+
ios - Better way to do skip to previous with AVQueuePlayer?
I am using an AVQueuePlayer
in my app. I have a two swipe gestures to skip to next and skip to previous avplayeritems. Right now to do skip to next I am just calling advanceToNextItem on the avqueueplayer which works well.
However the skip to previous I am removing all items and adding them back in with the previous video up front, this is really slow when skipping to previous multiple times. How can I make this faster just like calling advanceToNextItem
?
My code looks like this:
ios - Swift AVPlayerItem 完成后关闭
我对 Swift 和 iOS 开发非常陌生,所以请原谅我的无知。
我试图在视频播放完毕后自动关闭 AVPlayer。我曾想过附加“playerDidFinishPlaying”监听器来接收通知,但是一旦我有了它,我就找不到关闭控制器的方法/事件。我正在寻找模仿单击“完成”按钮的动作。
这是一小段代码。希望这是足够的信息。如果没有,我可以提供更多信息
我添加了以下通知,但同样,我不知道一旦有了它该怎么办......
最后,我知道我需要移除观察者,但我不确定何时何地这样做。任何帮助是极大的赞赏。
ios - iOS:AVPlayerItem seekToTime 不寻求请求的确切时间
我正在开发一个通过 HTTP 流式传输视频的应用程序。AVPlayer 用于播放视频。我正在使用 AVPlayerItem 和 selectMediaOption 方法在特定视频流之间切换(源中有三个流)。
我的问题是,当我在调用的媒体选项之间切换seekToTime: toleranceBefore: toleranceAfter:
以将新视频跳过到与我正在切换的视频相同的时间点时。问题是,这不能可靠地工作。即使 AVPlayerItem currentTime 属性报告了我请求的时间,视频通常也会跳到请求时间前几秒的位置。我将 kCMTimeZero 传递给toleranceBefore 和toleranceAfter。
值得一提的是,这只发生在一个特定的媒体流上。我有另一个没有出现问题的媒体流。
任何人都可以提出这里可能出现的问题吗?