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

ios - 是否可以在 iOS 上的 AVQueuePlayer 中进行电平计量?

使用 AVAudioPlayer 我可以通过调用 peakPowerForChannel 来获得 RMS 或峰值的音量;不幸的是,我有一个使用 AVQueuePlayer 的实现,因为应用程序需要继续在后台播放。

是否可以在 iOS 上的 AVQueuePlayer 中进行电平计量?我应该切换到 AVAudioPlayer 吗?在这种情况下,如何避免应用程序在后台停止播放?

0 投票
1 回答
562 浏览

ios - 使用 AVQueuePlayer 无缝和非冻结播放播放器项目

当每个项目在队列中结束时,我对 avqueueplayer 有一些问题,例如应用程序冻结 2-3 秒。我正在使用 queueplayer 一个接一个地播放记录,没有间隙。为了实现无间隙黑白播放器项目,我需要提前加载播放器项目的资产。我为当前播放的播放器项目和下一个播放器项目加载资产,以便在第一条记录结束时不会有间隙。当第一个记录结束时,我将第二个播放器项目添加到队列播放器中播放,并为第三个播放器项目加载资产。

这样,我的播放器队列始终包含一个播放器项目,但将为当前播放项目和下一个播放项目完成资产加载。随着新记录的添加,这将继续进行。

我发现在新的 iOS 设备中观察到半秒的冻结,在 iPod 4 等旧 iPod 设备中观察到大约 3-4 秒?

我能知道我们如何实现无缝且非冻结的 UI 体验吗?

谢谢

0 投票
2 回答
2121 浏览

ios - iOS: AVQueuePlayer/AVPlayerItem '一个 AVPlayerItem 一次只能占据玩家队列中的一个位置。

我不断收到此错误:

'AVPlayerItem 一次只能占据玩家队列中的一个位置。'

我对玩家的物品进行了 NSLog 记录,但它们似乎都不相同。此外,我添加了这个只是为了确定:

当我不确定这是否可行(可以在不同的内存位置有两个相同的项目)时,我编写了一个类别方法来测试玩家是否包含一个项目或与其相同的东西。但是,我仍然收到错误消息。

我已经看到一些人在使用 MPMoviePlayerController 时遇到此错误的帖子,但我没有使用那个自定义类,只是开箱即用的 AVQueuePlayer。

有想法该怎么解决这个吗?

0 投票
3 回答
4531 浏览

ios - 使用 AVQueuePlayer 时如何在视频之间添加过渡?

我正在开发一个视频应用程序,它一个接一个地播放多个视频。视频存储在 s 数组中AVPlayerItemAVQueuePlayer用这些初始化,AVPlayerItems它会自动播放该数组中的视频。

问题是当它更改为播放下一个视频时,它会卡住几分之一秒,或者在从一个视频转换到另一个视频时会产生一个混蛋。我想在视频更改时使用某种动画(例如淡入和淡出)来改善这种过渡。

我的代码AVQueuePlayer

我尝试在过渡时创建一个新图层,并通过降低其不透明度并增加新图层的不透明度来为旧图层设置动画(以创建所需的淡入淡出效果),但它没有按预期工作。

自定义转换的代码:

如何将过渡应用于 中的视频AVQueuePlayer

0 投票
0 回答
81 浏览

ios - Avqueueplayer 中的缓冲问题

我有一个要从 avqueueplayer 播放的网址列表。我正在加载曲目和可播放键,并在每个项目完成播放后将 AVplayeritems 一个一个添加到队列播放器中。

我正在使用以下代码处理播放器的缓冲状态

});

'playertimetoseek' 方法确定玩家在缓冲区准备好时必须寻找的时间。这是因为我的每个网址都需要在预定义的时间播放。该方法每隔 0.6 秒定期调用一次,通过使用计时器来验证缓冲状态

它工作正常,但由于某种原因,在音频持续时间内,一些 url 永远不会被缓冲(每个音频的持续时间为 10-20 秒),并且日志被打印为

2013-11-21 18:51:02.404 myapp[523:1000b] 1.009063,0​​.000000

2013-11-21 18:51:03.003 myapp[523:1000b] 1.608808,0.000000

2013-11-21 18:51:03.606 myapp[523:1000b] 2.208690,0.000000

2013-11-21 18:51:04.203 myapp[523:1000b] 2.811525,0.000000

2013-11-21 18:51:04.804 myapp[523:1000b] 3.408591,0.000000

2013-11-21 18:51:05.403 myapp[523:1000b] 4.009229 , 0.000000

2013-11-21 18:51:06.003 myapp[523:1000b] 4.608602,0.000000

2013-11-21 18:51:06.604 myapp[523:1000b] 5.208743,0.000000

2013-11-21 18:51:07.204 myapp[523:1000b] 5.809145,0.000000

2013-11-21 18:51:07.803 myapp[523:1000b] 6.409183,0.000000

2013-11-21 18:51:08.404 myapp[523:1000b] 7.008626,0.000000

2013-11-21 18:51:09.003 myapp[523:1000b] 7.609262,0.000000

2013-11-21 18:51:09.604 myapp[523:1000b] 8.208768,0.000000

2013-11-21 18:51:10.203 myapp[523:1000b] 8.809213,0.000000

2013-11-21 18:51:10.804 myapp[523:1000b] 9.408639,0.000001

2013-11-21 18:51:11.404 myapp[523:1000b] 9.408639,0.000001

2013-11-21 18:51:12.007 myapp[523:1000b] 10.579592,0.000000

请注意,我在一个不错的网络上,音频比特率为 128Kbps。为什么会发生这种情况?这有什么具体原因吗?

编辑:: 在其他一些情况下,日志如下:

2013-11-21 20:53:33.970 myApp[819:605b] 2.358489,0.000000

2013-11-21 20:53:34.570 myApp[819:605b] 2.958184,0.000000

2013-11-21 20:53:35.170 myApp[819:605b] 3.558097,0.000000

2013-11-21 20:53:35.770 myApp[819:605b] 4.158253,0.000000

2013-11-21 20:53:36.371 myApp[819:605b] 4.758271,0.000000

2013-11-21 20:53:36.970 myApp[819:605b] 5.358620,0.000000

2013-11-21 20:53:37.570 myApp[819:605b] 5.958164,0.000000

2013-11-21 20:53:38.170 myApp[819:605b] 6.558318,0.000000

2013-11-21 20:53:38.770 myApp[819:605b] 7.158033,0.000000

2013-11-21 20:53:39.371 myApp[819:605b] 7.758199,0.000009

2013-11-21 20:53:39.971 myApp[819:605b] 7.758199,0.417969

2013-11-21 20:53:40.571 myApp[819:605b] 7.758199,9.247356

2013-11-21 20:53:41.171 myApp[819:605b] 9.978836,19.095449

2013-11-21 20:53:41.770 myApp[819:605b] 9.978836,19.095449

2013-11-21 20:53:42.371 myApp[819:605b] 9.978836,19.095449

2013-11-21 20:53:42.971 myApp[819:605b] 9.978836,19.095449

2013-11-21 20:53:43.573 myApp[819:605b] 9.978836,19.095449

2013-11-21 20:53:44.171 myApp[819:605b] 9.978836,19.095449

这是怎么回事。它直到 20:53:39.971 才缓冲任何东西,并且在 0.6 seconds 内缓冲了几乎所有东西。缓冲究竟是如何工作的?

0 投票
2 回答
2597 浏览

ios - AVQueuePlayer AVPlayerItemDidPlayToEndTimeNotification 调用失败

AVQueuePlayer用来循环遍历数组AVPlayerItems。我循环它的方式,我听它,AVPlayerItemDidPlayToEndTimeNotification每次调用它时,我都会将当前对象添加到队列的末尾。继承人的代码:

问题是,该方法仅针对播放的第一个视频调用,之后,该方法停止被调用,因此,例如,如果我在数组中有 2 部电影,它将再次播放它们+第一个,任何想法为什么会这样?

更多信息:还尝试每次都制作一个新播放器并将其设置为图层。未能多次发送通知

0 投票
1 回答
4428 浏览

ios - iOS 7 上的 MPNowPlayingInfoCenter AVPlayer

我正在制作一个流媒体音乐的应用程序。我正在尝试在锁定屏幕上显示元数据(标题、艺术家和艺术品图像)。

MPNowPlayingInfoCenter似乎可以很好地使用MediaPlayer.framework,但我无法让它AVPlayer在 iOS 7 上使用。

由于以下原因,播放器在后台模式下运行良好AVAudioSession

这是我在锁屏上显示元数据的代码(不起作用):

任何帮助,将不胜感激 !

感谢您阅读本文:)

0 投票
2 回答
274 浏览

ios - 从后台启动 AVQueuePlayer

AVQueuePlayer应用程序进入后台后启动时无法开始播放声音队列。

基本问题是:如何AVQueuePlayer从后台新创建的实例开始声音?

它适用于类似导航的应用程序,需要在时机成熟时播放具有适当方向的组合声音。而且大多数时候该应用程序在后台运行......

详情如下...

当我从活动应用程序启动它时它播放得很好,即使在应用程序进入后台后也完成播放声音。

到目前为止我做了什么:

AppDelegate里面didFinishLaunchingWithOptions我补充说:

应用程序启动后,我单击主页按钮,应用程序进入后台。

到时候执行此代码(应用程序仍在后台,但请注意,我已启用音频和 AirPlay 后台模式):

不幸的是,这段代码没有发出任何声音,这与应用程序处于前台时的情况相反。

0 投票
1 回答
593 浏览

ios - iOS7 AVQueueplayer 后台循环(在后台循环排队的音乐)

这是我的第一篇文章,我有一个完全被难住的问题。我AVQueueplayer在服务器上发布了多个 mp3。

当应用程序在前台时,应用程序会播放和循环。但是,当我按下主页按钮时,queueplayer停止循环。

这是我到目前为止的代码

0 投票
1 回答
199 浏览

ios - iOS:AVQueuePlayer 不表示已停止播放

我有一个AVQueuePlayer加载 URL 来播放音频文件,它在大多数情况下运行良好。但是,我遇到了一个问题,在播放器播放完一个文件(队列中有另一个文件)后,它只会停止播放。通常,应用程序将能够使用播放器的ratestatusitems。在这种情况下,我已经完成了调试器,一切看起来都很正常。

一切似乎都在播放,除了播放器本身。强制播放器播放后,播放器将跳到下一首曲目,表明AVPlayerItem它没有加载(我可以确认音频网址是有效的)。

有谁知道我如何以编程方式捕捉到这个?