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

ios - AVPlayerItemDidPlayToEndTimeNotification 仅在强制时有效

我一直在到处寻找,但仍然找不到解决此问题的方法。我有一个AVQueuePlayer我正在制作的广播应用程序。它AVPlayerItems一次大约有20个排队。我将AVPlayerItemDidPlayToEndTimeNotification观察者添加到这些项目中的每一项。通知被触发并执行代码以删除元数据和状态的关键观察者,因此它不会崩溃并前进到队列中的下一个项目。然而它不想玩。没有报错,状态已经准备好播放,AVPlayer网址加载完美。如果我单击按钮来调用AdvanceNextitem,它可以完美运行并且也可以完美播放。现在最奇怪的是:如果我手动发布通知,通知代码可以完美运行。我将不胜感激任何帮助或输入,因为我一直在尝试一切以使其正常工作。

}

}

}

现在,如果我称这一切都可以通过按钮或其他东西完美运行:

0 投票
0 回答
1120 浏览

objective-c - 清除 AVPlayer 缓存

1) 我正在从服务器播放播放器上的视频。每次在应用上播放视频都会增加应用内存。因此,如果我观看视频 10 次,则应用内存中的视频大小会增加 10 倍。我为此使用 AVPlayer。

2) 停止流式传输 - 假设我开始观看视频并在几秒钟后停止。我注意到即使在我停止视频后,整个视频也会被下载。我取消了加载 AVAsset,清除了 AVPlayer 和 AVPlayerItem。它仍然在后台流动。

0 投票
1 回答
3553 浏览

ios - avplayitem 总是处于未知状态

刚刚发现一个很奇怪的问题,

从本地存储加载 mp3 文件时,

avplayitem 总是处于未知状态,如果文件放在文件夹中,则无法播放。

方式1:

方式2:

输出:

但是如果 mp3 文件在应用程序包中,way2 代码运行良好,即使状态仍然未知,

我确定 app bundle &document 中的文件是同一个文件,它可以在任何其他软件中播放,

通过使用方式 2,捆绑文件和文档文件之间的唯一区别是,

如果 mp3 文件放在 bundle 中,这个函数可以返回元数据

但使用文档 url 返回 nil

0 投票
2 回答
899 浏览

ios - iOS:收到“304 Not Modified”响应时 AVPlayerItem 中的错误

这是一个非常奇怪的错误。

我有一个 tableView,每个单元格都使用一个AVPlayer从远程服务器流式传输视频(想想类似 Vine 的时间轴)。因此,当我滚动时,被重复使用的单元格会使用新视频重新配置其播放器。

问题是:如果我非常快速地来回滚动,让相同的视频进出屏幕,AVPlayer 发送的请求最终会发生变化,包括 HTTP 标头If-None-MatchIf-Modified-Since,其余时间都不存在。它系统地使服务器返回304 Not Modified响应。

这似乎不喜欢 AVPlayer 的 playerItem,它将其状态更改为AVPlayerItemStatusFailed(有趣的是,AVPlayer 的状态仍然是AVPlayerStatusReadyToPlay)。错误是AVErrorUnknown(-11800) 和 OSStatus -12983 (在任何地方都没有记录,并且在整个 iOS SDK 中没有标题)。

那是它变得奇怪的时候:无论我接下来做什么,AVPlayer 和它的 playerItem 都被不可撤销地烧毁了。即使我用其他资产重新配置它们,它们也只会返回此状态并显示黑框。更奇怪的是:即使我初始化了另一个 AVPlayer、AVPlayerItemAVAsset,它也不会再播放了,我必须杀死并重新启动应用程序。

在这一点上,我很无知。知道这里发生了什么吗?阻止播放器在其连接中包含这些标头将修复它,但它不会暴露其请求序列化程序。

0 投票
0 回答
1064 浏览

ios - AVQueuePlayer 无间隙播放

我正在尝试在播放期间动态添加 .aac 块(通常为 10 秒)AVQueuePlayer以模仿AVPlayerhls 播放。

但是它会像我希望的那样一个接一个地播放歌曲,歌曲之间大约有 200 毫秒到 400 毫秒的间隔。

以下问题似乎已经回答了这个问题,但它对我不起作用。

AVQueuePlayer 播放无间隙和冻结

我有一个单例播放器和一个单例avplayeritem来跟踪最后一项。然后使用以下代码,我可以成功播放有间隙的歌曲。

我是否必须解码这些块然后将 PCM 输入AVQueuePlayer?如果这是唯一的解决方案,我如何将保存 pcm 的 NSData 提供给AVPlayerItem?

0 投票
1 回答
8245 浏览

ios - AVPlayer 使用资源加载器委托在大型视频文件上停止

我正在使用这种方法来保存视频文件的 AVPlayer 的缓冲区数据。在这个问题Saving buffer data of AVPlayer中找到答案。

iPhone 和 iPad - iOS 8.1.3

我对播放视频进行了必要的更改,它工作得非常好,除非我尝试播放很长的视频(11-12 分钟长,大约 85mb 大小),视频将在连接完成加载后大约 4 分钟停止。我收到了一个播放缓冲区空事件和一个播放器项目停止通知。

这是代码的要点

问题似乎是连接完成加载后的一段时间,播放器项目缓冲区变空。我目前的想法是,当连接完成加载并弄乱 playerItem 缓冲区时,某些东西正在被释放。

但是,当缓冲区变空时, playerItem 状态良好,视频资产可播放,视频数据良好

如果我通过 charles 限制 wifi 并减慢连接速度,只要连接在视频结束后几分钟内没有完成加载,视频就会播放。

如果我在完成加载事件上设置连接 nil,资源加载器将在 shouldWaitForLoadingOfRequestedResource 再次触发时触发新连接。在这种情况下,加载将重新开始,视频将继续播放。

我应该提到,如果我将这个长视频作为普通的 http url 资源播放,它可以正常播放,并且在保存到设备并从那里加载后也可以正常播放。

0 投票
1 回答
1160 浏览

video-streaming - 如何在 iwatch 上播放来自 URL 的视频

我在 iPhone 应用程序上使用AVPlayer.

对于我使用的视频视图层AVPlayerLayerUIImageView.

但是我找不到 iWatch 应用程序的解决方案,WKInterfaceImage没有那个功能。

我正在寻找在iWatch.

0 投票
1 回答
882 浏览

ios - AVPlayer :observedBitrate 和indicatedBitrate 的区别

AVPlayer用来读取 HLS 流。

在播放期间,我需要从AVPlayerItemAccessLogEvent对象获取比特率。在这个对象中,我可以得到observedBitrateindicatedBitrate

我阅读了文档,但是,我不明白这两个属性之间的区别......

0 投票
1 回答
379 浏览

cocoa - 为什么 AVPlayerItem 不支持 AVAudioTimePitchAlgorithmVarispeed 设置?

我正在尝试根据发送到 AVPlayer 的速率更改 AVPlayerItem 的音频音高。

为此,我使用指定“AVAudioTimePitchAlgorithmVarispeed”的 AVAsset 初始化 AVPlayerItem,如下所示:

然后我将 playerItem 附加到 AVPlayer,但是当我将 AVPlayer 的速率设置为小于 1 或大于 1 时,音高不会改变。相反,AVPlayerItem 使用 'AVAudioTimePitchAlgorithmSpectral' 算法并且不遵守我指定的算法。我的目标是 10.9 并针对 10.9 进行构建。根据文档,此功能从 10.9 开始可用。

0 投票
1 回答
173 浏览

objective-c - 如何使用 AVQueuePlayer 和 AVPlayerItem

我试图使用 AVQueuePlayer 类来播放一些 AVPlayerItems 并遇到问题。

我有财产类

在这个类的初始化中,我有:

后来一个功能有这样的东西

我什么也没听到。路径是 100% 正确的。我已经用 AVAudioPlayer 对其进行了测试,但我需要一个接一个地播放多个文件,这就是我想使用 AVQueuePlayer 的原因