问题标签 [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.
ios - MPNowPlayingInfoCenter 显示为暂停
我AVQueuePlayer
在我的应用程序中使用来播放一些媒体。当应用程序处于后台时,我正在尝试使用它MPNowPlayingInfoCenter
来显示当前的播放状态。我的问题是播放按钮总是显示,即使媒体正在播放。我正在通过以下代码设置正在播放的信息:
正如您从以下屏幕截图中看到的那样,显示了播放按钮,我希望在其中看到暂停按钮。
如果它是相关的,我将AVAudioSession
类别设置为AVAudioSessionCategoryPlayback
.
swift - AVFoundation 播放连续视频片段
我正在开发一个 iOS 应用程序,该应用程序涉及从 Web 服务器获取作为流的一部分的视频片段并在应用程序内连续播放它们。经过一番研究,我决定使用 AVQueuePlayer。每次从服务器获取 MP4 文件并将其存储在 NSData 对象中时,我都会创建一个 AVPlayerItem 并将其附加到队列中。另外,我会收听 AVPlayerItemDidPlayToEndTimeNotification 通知,我会在其中前进到下一个项目。我面临的问题是每次我从一个电影片段前进到另一个时都会出现令人讨厌的小延迟。我尝试在 iMovie 上组合片段,但无法判断一个片段何时结束而另一个片段何时开始。如何摆脱连续片段之间的小停顿/滞后?
这是我的代码:
同样,我的问题是在推进 AVQueuePlayer 时。它导致了这种滞后,这是不可能的。电影片段很小(每个 1-2 秒)并且应该是连续的,因为作为流。我尝试使用 2 AVQueuePlayers 和 2 AVPlayerLayers 但它没有解决问题。
我还尝试使用 MPMoviePlayerController 并在每次播放完毕时更新其 contentURL。滞后并没有消失。
有什么线索吗?
ios - AVPlayerItemDidPlayToEndTimeNotification 仅在强制时有效
我一直在到处寻找,但仍然找不到解决此问题的方法。我有一个AVQueuePlayer
我正在制作的广播应用程序。它AVPlayerItems
一次大约有20个排队。我将AVPlayerItemDidPlayToEndTimeNotification
观察者添加到这些项目中的每一项。通知被触发并执行代码以删除元数据和状态的关键观察者,因此它不会崩溃并前进到队列中的下一个项目。然而它不想玩。没有报错,状态已经准备好播放,AVPlayer
网址加载完美。如果我单击按钮来调用AdvanceNextitem,它可以完美运行并且也可以完美播放。现在最奇怪的是:如果我手动发布通知,通知代码可以完美运行。我将不胜感激任何帮助或输入,因为我一直在尝试一切以使其正常工作。
}
}
}
现在,如果我称这一切都可以通过按钮或其他东西完美运行:
ios - 如何在 AVQueuePlayer 中获取当前播放时间和总播放时间?
是否可以在 AVQueuePlayer 中获得播放时间和总播放时间?如果是,我该怎么做?
到目前为止我已经尝试过:
但它正在返回位于队列中的 currentItem 当前播放的持续时间。
我想达到什么目的?
我想获得关于 AVQueue Player 中存在的所有项目的 currentTime Played ,我该怎么做?
任何帮助都受到高度赞赏。
ios - 如何在 AVQueuePlayer 或 AVMutableComposition 中播放多个视频而没有任何间隙或冻结?
我知道这个问题过去曾被问过几次,我已经阅读了对这些问题的回复。但似乎没有什么能按我想要的方式工作。有多个视频,所有视频都添加到AVQueuePlayer
.
如其他页面所述,我尝试以两种方式添加:
这样:
但是,在前进到下一个项目时,这些都无法消除黑屏。在下一个项目开始播放之前有大约 1 秒的间隔。我怎样才能消除这个差距?
更新:我也试过了AVMutableComposition
。差距显着减少,但仍然很明显。有没有办法完全消除这些差距?
AVMutableComposition
代码:
ios - iPhone通话期间的AVPlayer或AVQueuePlayer
我有一个应用程序使用AVPlayer
(或AVQueuePLayer
)播放由应用程序录制的本地文件。一切都很好。但我也希望它在通话进行时在 iPhone 上工作(视频是事件记录)。我发现在通话期间,视频输入avplayerLayer
变为空白,AVPlayer
速率更改为 0(停止),并且所有将速率更改为非零(播放)的尝试都被忽略(速率保持为 0)。似乎没有任何文档,并且在播放器中检测到这种情况的唯一方法是播放器已停止并且不会开始播放。当然,我还会检查音频中断和正在进行的呼叫中心呼叫。
显然,在这种情况下,中断是由调用引起的,因此总是存在非活动/恢复或intactive/background/foreground/resume
转换。以及音频路由通知、音频中断。所以间接地我知道这种情况可能正在发生。
所以问题是:(1)是否有任何直接方法(特定于AVPlayer
, )在这种非播放模式下AVPlayerLayer
被通知。AVPlayer
我现在使用“avplayer.rate 无法将速率从 0 更改为非零”,但这似乎很奇怪(而且“越界”太多了!)我想通知用户视频暂时无法播放或预览,所以他们不认为应用程序坏了。并在 iPhone 通话结束时通知他们或自动继续播放。(没有不断尝试每 500 毫秒开始播放的循环过程!)
(2)AVPlayer
在 iPhone 通话(绿条)过程中可以播放任何内容吗?还是这只是苹果设计AVPlayer
SDK 的方式?(如果是这样,则没有关于此的文档)显然,其他应用程序可以在 iPhone 通话期间播放视频,但我怀疑它们使用的是较低级别的 SDK 而不是AVPlayer
.
objective-c - AVQueuePlayer 在后台停止流式传输(由于信号 9 而终止)
我正在开发一个应用程序,它从 soundcloud 流式传输音乐。为此,我使用了用几个 AVPlayerItems 初始化的 AVQueuePlayer。一切正常,直到应用程序进入后台。需要 1-2 分钟,然后播放停止,我收到 XCode 调试错误代码“由于信号 9 而终止”。我查看了内存,应用程序不断需要约 25MB 的内存。AVQueuePlayer 中还添加了几个观察者。我真的忍不住,这真的很烦人,因为应用程序应该能够在设备锁定时播放音乐等。
提前致谢
ios - AVQueuePlayer 无间隙播放
我正在尝试在播放期间动态添加 .aac 块(通常为 10 秒)AVQueuePlayer
以模仿AVPlayer
hls 播放。
但是它会像我希望的那样一个接一个地播放歌曲,歌曲之间大约有 200 毫秒到 400 毫秒的间隔。
以下问题似乎已经回答了这个问题,但它对我不起作用。
我有一个单例播放器和一个单例avplayeritem
来跟踪最后一项。然后使用以下代码,我可以成功播放有间隙的歌曲。
我是否必须解码这些块然后将 PCM 输入AVQueuePlayer
?如果这是唯一的解决方案,我如何将保存 pcm 的 NSData 提供给AVPlayerItem
?
ios - iOS - AVQueuePlayer 不播放歌曲,有时它会导致应用程序崩溃当我使用移动数据时
在我的应用程序中,通过 NSURL 使用 AVQueuePlayer 播放多首歌曲。一切正常,当我使用 wifi 播放歌曲时。如果我使用移动数据,歌曲不会播放,有时应用程序会崩溃。请帮帮我。
ios - 播放 AVQueuePlayer 的第 n 项
我有一个实例,AVQueuePlayer
我已经使用一组视频对其进行了初始化AVPlayerItem
(假设我有 10 个项目),在按钮事件上,我需要播放集合中第 n 个索引的项目。
我用过- (void)replaceCurrentItemWithPlayerItem:(AVPlayerItem *)item
,但它用传递的AVPlayerItem
.
我需要玩第 nAVPlayerItem
个AVQueuePlayer
。任何帮助将不胜感激。