问题标签 [avqueueplayer]

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 投票
1 回答
163 浏览

ios5 - AVQueuePlayer 的键值观察器

我在 AVQueuePlayer 中播放音频,并在 UIImage 上通过 MPMediaPickerController 播放相关专辑插图。我用来自 MPMediaPickerController 的 URL 填充数组,然后创建提供 AVQueuePlayer 的 AVPlayerItems(带有 URL 的初始化)数组。当队列中的下一首歌曲开始时,我希望专辑封面相应地更改。鉴于我目前的设置,是否可以接收 AVPlayerItemDidPlayToEndTimeNotification 来实现这个目标?在 Apple 文档和网络搜索之间,我没有找到任何可以确认能够在队列中获取歌曲结束通知的内容。这就是症结所在。

非常感谢....

0 投票
1 回答
1302 浏览

ios5 - 移动到上一个 AVPlayerItem AVQueuePlayer

试图允许用户在 AVQueuePlayer 中向后跳过,同时保留原始 AVQueuePlayer 集合。例如,用户按两次后退按钮并从先前位置恢复收听。参考此Skip to Previous AVPlayerItem on AVQueuePlayer / Play selected Item from queue - 似乎转储队列中的所有项目并仅播放指定项目。不必每次都重新初始化/填充队列,有没有办法跳过并让队列恢复其流程完成?

谢谢

0 投票
1 回答
778 浏览

ios - AVQueuePlayer 和多个视频播放和时间范围

对 ios 编程有点陌生。尝试使用 AVQueuePlayer 并在列表中播放多个视频。我已经搜索过并且没有看到我想要实现的相关示例。这是一个很容易回答的问题,如果能指出我正确的方向的话。

我想要做的是真正按顺序播放列表中的视频。因此,查看 AVQueuePlayer 和 AVPlayerItem 似乎应该符合要求。我知道如何使用它来背靠背播放多个视频,因为大多数示例都显示了这是如何完成的。我想要的是加载一个播放器项目并将其限制在文件中的某个时间。例如,我会加载一个 3 分钟长的视频文件,并且只想查看 1:20 到 1:35 的时间。我见过的所有示例都加载了整个文件。必须有一种方法可以做到这一点,而我还没有看到一个很好的例子。

我还希望 AvPlayerItems 可能是同一个视频文件,但它们播放的时间范围与视频文件不同。所以本质上我是从任意数量的视频文件中播放列表中的视频时间范围,但这些视频文件可能是列表中的相同源文件。例如:

视频列表和播放时间

我已经查看了 AvQueuePlayer 的苹果开发人员参考资料,但还没有弄清楚。我敢肯定,你们当中有一些经验丰富的人已经做到了这一点,并且可以为我指出一些很好的例子。

0 投票
2 回答
872 浏览

iphone - 如何播放在 didOutputSampleBuffer: 中接收到的音频?

我正在开发与会议相关的应用程序,我首先使用 CaptureSession 捕获音频,现在我想动态播放音频数据而不保存到文件中。我已经尝试过AVQueue它似乎两者CaptureSession并且AVQueue当我开始队列它停止捕获时不会一起工作,所以我现在可以做什么来播放通过 CaptureSession 捕获的音频?

感谢您的帮助

0 投票
1 回答
1162 浏览

iphone - 当网络激活(并准备好播放)时,如何从 AVQueuePlayer/AVPlayerItem 获取回调?

我有一个AVQueuePlayer需要在后台运行的基于音频流的播放器。播放器需要继续运行,直到播放完所有列表。当然,如果网络连接变坏,它将不得不暂停,但当网络连接恢复时,它应该会自动恢复。

为此,我正在监视

  • AVPlayerItem.status
  • AVPlayerItem.playbackLikelyToKeepUp
  • AVPlayer.currentItem
  • AVPlayer.status
  • AVPlayer.error

使用 KVO。例如,如果网络连接从临时错误中恢复,我预计currentAVPlayerItem.status会变成AVPlayerStatusItemReadyToPlay,这将报告给我的播放器,我可以[AVQueuePlayer play]在那个时候发出。

这种机制(逻辑)似乎在某些情况下有效,但在离线环境中非常频繁地AVPlayerItem.status变为,似乎自动跳过了AVPlayerItemStatusFailed哪个项目。AVQueuePlayer结果,队列最终将是空的,并且无法从 接收回调AVPlayerItem

我希望AVPlayer当网络连接变坏/恢复时,某些属性会改变,但似乎没有任何改变(statuserror)。

显然我可以监控Reachability,但是当应用程序在后台运行时这不起作用。

在这种情况下,我如何知道网络何时恢复并AVQueuePlayer可以再次播放?

我可能只是这个领域的新手。如果有人能给我一个大致的想法,他/她如何AVQueuePlayer在不被临时网络连接问题完全阻止的情况下获得持续的游戏体验,那也将是一个很棒的帮助!

0 投票
1 回答
1770 浏览

ios6 - AVQueuePlayer 挫折(缓冲区欠载处理)

我在 AVQueuePlayer 上玩得很开心。很简单,我正在使用 playerItemWithURL: 构建的 AVPlayerItems 数组上制作它,并指向网络上服务器上的视频资产。

如果我尝试在刺激器(原文如此)中运行这个东西,它会播放第一个资产,开始播放第二个资产,然后就死了。有时它甚至没有通过第一个资产。

现在,我知道 sim 的行为与设备不同,所以我也在设备上尝试了它,但遇到了同样的问题。

当我记录项目的各种状态变化时,我看到缓冲区用完了,播放器就死了。对于正在播放项目队列的构造,这对我来说似乎有点愚蠢......当然缓冲区可能会不足,但为什么它会死?

我做错了什么,或者这是它应该如何表现?

我通过观察loadedTimeRanges 属性以及当它改变时向播放器发送PLAY 来解决这个问题。但这会导致播放卡顿,这也很糟糕。

这是我的代码。有人可以告诉我如何在没有播放完全废话的情况下做到这一点吗?

0 投票
2 回答
238 浏览

iphone - AVQueuePlayer - 播放第一个音乐文件后应用程序崩溃

AVQueuePlayer用于播放多个音乐文件。

我正在使用此代码,

但是lldb在控制台日志中播放第一个音频时应用程序崩溃。这是寻求帮助的屏幕截图。我认为这与内存管理有关。

任何帮助将不胜感激。谢谢你。

0 投票
0 回答
217 浏览

iphone - AVQueuePlayer 视频图像冻结,静音通知

我正在从 s3 存储桶上的一组编码视频构建 AVQeueue 播放器,使用 AVPlayerActionAtItemEndAdvance 按顺序播放视频;

  • 视频都以相同的分辨率和编解码器编码
  • 他们都经过测试很好玩
  • 在某些设备上,以下解决方案可以正常工作
  • 在 IOS 5.x 和 6.x 上都注意到以下问题
  • 一直在尝试检查主线程中的所有操作。(很可能是问题)

问题:在模拟器和某些设备上(在 4s 和 5 上注意到)在 x 数量的视频(x 有时不可预测,但通常是 3、4)之后,视频仅以声音播放并终止队列并且不会抛出“playerItemDidReachEnd “ 通知。应用程序不会崩溃或冻结。没有从“AVPlayerItemStatusFailed”或“AVPlayerItemStatusUnknown”收到错误

如果有人有这个问题的经验,请分享。

代码:-(void)addObservers {

}

0 投票
1 回答
37 浏览

iphone - iPhone短文件播放

我想知道是否可以在 iPhone 上播放几个小音频文件。我创建了一个 25µs 的声音文件,但无法在模拟器或设备上播放。所以我创建了几个 25µs、50µs 和 100µs 的文件,但即使我使用NSArrayNSMutableArray使用 ÀVQueuePlayer`,我也无法播放它!

有人知道播放声音的最短时间,或者我正在做的事情是否可行?

谢谢您的回答

PS:我的项目是在音频上与其他设备进行通信

0 投票
3 回答
4739 浏览

ios - AVQueuePlayer:循环队列中的最后一项(并消除打嗝)或循环视频的最后几秒

我正在使用 AVQueuePlayer 按顺序播放视频(尽管我在播放之间有打嗝)。现在我想:

1)循环该序列中的最后一项(不是完整的)。

2)这样做,我也想消除打嗝。

下面是我播放视频序列的代码。我怎样才能实现我的 2 个目标?

我正在考虑的另一种方法是播放 1 长视频并循环播放最后几秒钟。也许我也可以这样避免打嗝。这种方法可以实现吗?如果是这样,如何调整下面的代码(播放 1 个视频)?