问题标签 [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.

0 投票
2 回答
306 浏览

ios - 如何捕获通知以暂停音频

当屏幕顶部弹出通知或有来电时,我想暂停。

我使用 AVPlayer/AVPlayerItem。

如何实施?

0 投票
1 回答
1870 浏览

ios - 从本地 URL 加载 AVPlayerItem 的问题

我正在使用 AVPlayer 开发自定义视频播放器。我在缓存文件夹 (NSCache) 中加载存储在本地文件系统中的视频。我像这样初始化播放器:

这通常工作正常。但是,由于此错误,我经常在 AVPlayerItem 的状态上失败:

奇怪的是,失败的相同 URL 有时会在失败之前和之后不久工作。我会说每 10 次加载尝试都会失败。我不知道是什么原因造成的,也不知道在哪里寻找答案。搜索错误代码对我来说是空的。非常感谢任何帮助或指示。

0 投票
1 回答
991 浏览

ios - 离开 AVPlayer 视图后如何停止下载流式 HLS 视频?

我正在尝试使用 AVPlayer 播放 HLS 流。播放器可以正常播放流,但是,在离开播放器视图后,它似乎并没有停止为 HLS 流下载数据。离开 AVPlayer 视图后,我在状态栏上看到了一个网络数据微调器几分钟。

我已经尝试过cancelPendingSeeks, cancelLoading,并尝试AVPlayerLayer使用 从其超层中删除removeFromSuperLayer,但是,这些似乎都不能解决问题 - 状态栏上仍然有一个微调器。

在实际设备上可以看到此微调器,但模拟器上没有微调器。我确定正在下载视频;我可以在网络监控应用程序中查看数据使用情况。我怎样才能解决这个问题?

0 投票
1 回答
2269 浏览

ios - 在 iOS 中播放视频时处理字幕

我需要对出现在屏幕上的本地(或远程)视频文件的字幕进行一些文本处理。目前我正在使用AVPlayerItem并查看它的资产,我可以看到有一个隐藏字幕轨道,但我无法获得实际的字幕文本。所以问题是我怎样才能得到字幕轨道的实际文本,当它们显示时(最好是快速的)。

0 投票
1 回答
1724 浏览

ios - AVPlayer 在缓冲区已满并重新开始时停止播放

我有一个AVPlayer在单元格内部的集合视图,并且在循环播放时AVPlayer开始播放AVPlayerItem

被调用。这很好用,但问题是在AVPlayer播放项目几次后,视频不再显示,但我能听到它的声音。@"playbackBufferFull"我还为每个播放的项目的值添加了一个观察者:

我注意到,当视频停止时,值的观察者方法@"playbackBufferFull"被调用,首先我想知道是什么导致缓冲区变满,第二个也是最重要的是如何AVPlayer在视频停止时恢复;我尝试调用[cell.videoPlayer play];并用新的项目替换该项目,但它不起作用,观察者方法:

0 投票
1 回答
789 浏览

ios - 即使 rate 属性为 0,AVPlayer 仍在播放

This other SO post建议当ratean的属性为AVPlayer0时,这意味着AVPlayer不再播放。我们使用下面的观察者代码来循环视频,但有时pause在播放器上调用该函数无法中断循环。调试时,该rate属性的计算结果为 0。

1) 链接的 SO 帖子是否错误,因为速率值为 0 并不意味着播放器已暂停?

2)连续循环,即使在调用函数之后,在通知已经发出之后函数出现的pause某种竞争条件?pauseplayerItemDidReachEnd

0 投票
0 回答
642 浏览

ios - AVPlayerItem 可以在搜索之前加载一个时间范围吗?

我需要使用 AVPlayer 播放 HLS 视频进行快速搜索。AVPlayerItem 上的标准 seekToTime 方法工作正常,但在搜索时会有明显的延迟,除非搜索点的视频已经加载 - 正如您所期望的那样。

是否可以在搜索之前在特定时间范围内预加载视频,以便后续搜索更快?对于这个用例,具体的搜索点是预先知道的,搜索点的相关视频片段约为 10 秒。

目前,此功能是通过将搜索点处的每段视频切割成自己的 MP4 文件并使用 AVQueuePlayer 在每段之间连续播放来实现的。但这并不理想,有几个原因,我们正在寻找使用单个大型视频文件的方法,并改进搜索处理。

我已经阅读了所有 AVPlayer/AVPlayerItem API 文档,但看不到这样做的方法。

有任何想法吗?也许这需要使用 AVPlayer 以外的东西?

iOS8+

0 投票
6 回答
7459 浏览

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:

0 投票
3 回答
5495 浏览

ios - Swift AVPlayerItem 完成后关闭

我对 Swift 和 iOS 开发非常陌生,所以请原谅我的无知。

我试图在视频播放完毕后自动关闭 AVPlayer。我曾想过附加“playerDidFinishPlaying”监听器来接收通知,但是一旦我有了它,我就找不到关闭控制器的方法/事件。我正在寻找模仿单击“完成”按钮的动作。

这是一小段代码。希望这是足够的信息。如果没有,我可以提供更多信息

我添加了以下通知,但同样,我不知道一旦有了它该怎么办......

最后,我知道我需要移除观察者,但我不确定何时何地这样做。任何帮助是极大的赞赏。

0 投票
1 回答
549 浏览

ios - iOS:AVPlayerItem seekToTime 不寻求请求的确切时间

我正在开发一个通过 HTTP 流式传输视频的应用程序。AVPlayer 用于播放视频。我正在使用 AVPlayerItem 和 selectMediaOption 方法在特定视频流之间切换(源中有三个流)。

我的问题是,当我在调用的媒体选项之间切换seekToTime: toleranceBefore: toleranceAfter:以将新视频跳过到与我正在切换的视频相同的时间点时。问题是,这不能可靠地工作。即使 AVPlayerItem currentTime 属性报告了我请求的时间,视频通常也会跳到请求时间前几秒的位置。我将 kCMTimeZero 传递给toleranceBefore 和toleranceAfter。

值得一提的是,这只发生在一个特定的媒体流上。我有另一个没有出现问题的媒体流。

任何人都可以提出这里可能出现的问题吗?