问题标签 [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 投票
0 回答
140 浏览

ios - AVPlayer 文件要求文档

我有一个AVPlayerLayer在我的父视图控制器的方法中AVPlayer实例化的。init在模拟器和新设备上一切正常,如预期的那样,但在较旧的 iPad 2 和 iPod touch 上,视频无法播放。

我在一个单独的问题中看到有人说视频和每个设备的预期分辨率有 10MB 的文件大小限制。我的视频是 2048x1536 和大约 13 MB。我将它缩小到 720p,现在它可以在我的 iPad 2 上运行。

我需要的是关于哪些设备支持什么大小的文件的实际文档。我一辈子都找不到它。

0 投票
2 回答
2340 浏览

ios - 从 UITableViewCell 上的多个 AVPlayerItem 添加和删除观察者

我正在尝试制作一个播放多个视频的表格视图,AVPlayer并且AVPlayerItem我需要为每个视频添加观察者,AVPlayerItem以便我可以跟踪 playLikelyToKeepUp 属性

我尝试并失败的是在设置AVPlayerItem和删除它之后添加观察者deinitUITableViewCell但是由于单元格永远不会被释放但会被出队所以这不起作用,我会得到这个错误

搜索后我想出了这个

  • 我不应该添加或删除观察者,UITableViewCell但我必须这样做,因为播放器项目是在单元子类中制作的
  • 处理观察者的最佳方式是在“UITableViewDelegate”方法中
  • 添加willDisplayCell和删​​除didEndDisplayingCell

但即使这在我的情况下也不起作用,因为AVPlayerItem需要时间来初始化

所以观察者不会被添加,willDisplayCell但删除观察者将被调用,并会导致运行时错误

如果有人知道如何做到这一点,我会很高兴知道?谢谢

0 投票
0 回答
875 浏览

ios - AVPlayer 在 iOS 9.3 上暂停直播

我在尝试从先前暂停的时刻恢复实时流播放时遇到困难。

在 iOS 9.2 及更低版本上,播放器从暂停的时刻继续播放。在 iOS 9.3 及更高版本上,当我恢复播放时,我收到“playerBufferEmpty”和 AVPlayerItemTimeJumpedNotification,因此播放不会从暂停的时刻继续。

这看起来像是 AVPlayer 中的一个问题,因为一切都适用于 iOS 9.2 及以下版本。我也试过 playerItem.canUseNetworkResourcesForLiveStreamingWhilePaused ,但它没有帮助。

从 iOS 9.2 到 iOS 9.3,AVPlayer/AVPlayerItem 是否有任何变化?

谢谢!

0 投票
1 回答
2806 浏览

ios - AVPlayer 不会触发playbackBufferEmpty 但也不会播放

我使用 AVPlayer 通过互联网播放音频直播。如果暂停超过 1 分钟,我喜欢恢复播放。

我打电话player.rate = 1.0恢复。但是,如果流暂停 > 1 分钟,则不再播放。在这种情况下,我需要重新创建 AVPlayerItem 以使其再次工作。

那么我怎样才能抓住这种情况,让我知道播放没有恢复呢?

  • 我在player.rate. 虽然它停留在1.0。玩家不玩了!
  • 我在currentItem.playbackBufferEmpty. 但在这种情况下不会调用它。
  • currentItem.status不切换到.Failed。它根本没有改变。

在这种情况下,AVPlayer 似乎什么都不做。有任何想法吗?

我构建了一个 Playground 代码来演示该问题:

0 投票
0 回答
545 浏览

avplayer - AVPlayerItem 的 canUseNetworkResourcesForLiveStreamingWhilePaused 没有任何效果

由于 iOS 9/tvOS 9 AVPlayerItem 实例具有新的布尔变量canUseNetworkResourcesForLiveStreamingWhilePaused

该文档指出:

"指示播放器项目在暂停时是否可以使用网络资源来保持播放状态最新对于实时流媒体内容,播放器项目可能需要使用额外的网络和电源资源来保持播放状态在暂停时保持最新。例如,当此属性设置为 YES,seekableTimeRanges 属性将定期更新以反映直播流的当前状态。

我一直在 Apple TV 上测试此属性,并在实时视频流暂停时观察了 seekableTimeRanges,但我是否将其设置为 yes/no 似乎并不重要——seekableTimeRanges 中包含的时间范围在这两种情况下都会定期更新.

你得到类似的结果吗?

0 投票
1 回答
1374 浏览

ios - 如何从 AVPlayer 中提取隐藏式字幕/字幕

由于 AVPlayer 渲染的隐藏式字幕有时会与其他 UI 组件重叠,我想在单独的视图中渲染 cc。

我可以通过将 closedCaptionDisplayEnabled 设置为 NO 来关闭 AVPlayer 的 cc 渲染,但我没有找到提取我想要渲染的隐藏字幕的方法。

有人知道是否有办法从 AVPlayer/AVPlayerItem 中提取 CC 字符串吗?我能够使用 AVMediaTypeClosedCaption 识别 AVAssetTrack,但我不确定如何在一段时间内提取字符串。

0 投票
1 回答
1545 浏览

ios - “playbackBufferFull”和“playbackBufferEmpty”属性有什么区别?

我已经看到了 2 个属性AVPlayerItem

现在,这是 Apple 文档中所说的:

播放缓冲区满:

此属性报告用于播放的数据缓冲区已达到容量。尽管播放缓冲区已达到容量,但可能没有足够的统计数据来 playbackLikelyToKeepUp支持YES.

播放缓冲区空:

它表示播放已消耗所有缓冲媒体,播放将停止或结束。


从这些陈述中,我的理解是:

播放缓冲区满:

整个数据已加载播放。例如,我正在播放来自 URL 的 5 分钟长的视频。当所有内容都加载到最后时,这些都是真的。

播放缓冲区空:

实际播放已经消耗了到目前为止加载的所有缓冲区。例如,直到 2.3 分钟的数据已经加载,并且播放也到了那个时间,没有更多的内容可以呈现。(我想现在是时候开始我们的旋转木马了,一个指标)

我有什么误解吗?如果是,请纠正我..

欢迎任何深入的知识或建议!

0 投票
0 回答
258 浏览

ios - 如何在 Airplay 模式下将子视图添加到 AVPlayer?

我已AVPlayer成功添加子视图。但是,当我在播放模式下播放它时,它不会出现在 Apple TV 中。谁可以帮我这个事?

如何AVPlayer在 Airplay 模式下添加子视图?

0 投票
1 回答
764 浏览

ios - 使用 AVPlayer 播放音频时如何在 UIWebView 中暂停音频

我有一个UIWebView正在播放的音乐,当我使用 播放音频时AVPlayer,它们会一起播放。

我尝试用它AVAudioSession来控制它。但不工作。

这是我的代码

0 投票
0 回答
337 浏览

ios - 更改 AVPlayerItem 的 audioTimePitchAlgorithm 参数

我正在尝试更改 audioTimePitchAlgorithm 以低于 0.5 的速率播放,但似乎运气不佳。我已经为解决方案搜索了 SO,但我尝试的每个实现似乎仍然将我的速度限制在 0.5 或更高...

如果这实际上是一个直截了当的过程,我提前道歉,我可能对此太陌生,无法掌握一些基本概念。我也已经尝试过创建一个 AVMutableAudioMixInputParameters 对象并将其分配给 AVMutableAudioMix 对象,然后实习生将此混合对象分配给 AVPlayerItem,但这也产生了相同的结果(以 0.5 的速率播放),所以我只包括了我的第一个,更简化,代码尝试。任何帮助将不胜感激 :)