问题标签 [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 回答
93 浏览

ios - 在后台控制当前的 AVQueuePlayer 项目

我正在使用 iBeacons 和地理围栏进行徒步旅行。我试图让我的用户插入耳机,关闭应用程序并在他们四处走动时获取音频更新。

我已经掌握了这方面的基础知识,并且可以在应用程序处于前台时触发音频。我还实现了播放静音技巧并在后台播放/暂停 AVQueuePlayer 实例,该实例在应用程序处于前台时已启动。

我的挑战是能够在后台控制 AVQueuePlayer 的状态,以便我在正确的时间播放正确的曲目 - 这是一种非线性体验。我目前有大约 2 打曲目。有没有办法可以按顺序排列所有这些,并针对队列播放器播放特定索引,或者有没有办法在后台向队列添加和删除项目?

关于如何解决我的问题的任何其他想法?到目前为止,我得到的最好建议是尝试将音频附加到本地推送通知,但 30 秒的限制确实不理想。

0 投票
0 回答
901 浏览

objective-c - 带有 Soundcloud 流项目的 AVQueuePlayer(或 AVPlayer)会阻塞 UI(主线程)

感谢这两个帖子,我在创建 AVPLayerItem AVQueuePlayer 播放期间解决了这个问题,没有间隙并冻结 AVPlayer 在缓冲音频流开始时“冻结”应用程序

但是,使用来自 Soundcloud 的流(https://api.soundcloud.com/tracks/146924238/stream?client_id=76395c48f97de903ff44861e230116bd),在项目的状态准备好播放(AVPlayerStatusReadyToPlay)之后,AVQueueplayer 继续在主线程中执行某些操作“冻结” UI(跟踪在后台线程中继续播放)。

我注意到当网络较低时这个问题更重要,然后我得出结论,当项目缓冲流时存在这种冻结。

有人有解决方案或技巧吗?

0 投票
2 回答
1036 浏览

ios - AVQueuePlayer 无法播放本地 MP3 文件

我目前正在编写一个 iOS 应用程序,允许用户从 soundcloud 流式传输音乐。目前,我可以在展台前沿和后台应用程序状态下从 Soundcloud 进行流式传输。当我下载 MP3 文件并尝试播放它并在应用程序在后台持续播放时遇到问题,更具体地说是在锁定屏幕或屏幕关闭时。

当我播放下载的文件并锁定屏幕时,音频会继续播放一段时间。通常它会播放 2 -3 分钟。之后播放将停止,并且播放列表中的任何其他下载的 mp3 文件将不会播放,直到用户返回应用程序。如果用户有互联网连接,播放列表中未下载的项目将完美播放,无论下载的项目之前是否无法播放。

有时我会收到以下错误:

AVPlayerItemStatusFailed: Error Domain=AVFoundationErrorDomain Code=-11800 "操作无法完成" UserInfo=0x170270500 {NSUnderlyingError=0x170059380 "操作无法完成。操作不允许", NSLocalizedFailureReason=发生未知错误 (1), NSLocalizedDescription=操作无法完成}

我还会从 AVPlayerItem 收到以下通知

通知:NSConcreteNotification 0x1700538c0 {name = AVPlayerItemDidPlayToEndTimeNotification; 对象 = AVPlayerItem:0x178009300,资产 = AVURLAsset:0x17822aaa0,URL = file:///var/mobile/Applications/51118E74-3334-4EFC-B148-B485DE675F9E/Documents/Downloads/SC_165903784.mp3}

当正在播放的第一个项目停止播放时,会收到此通知。当它没有完成播放到其持续时间结束时,我收到此通知是没有意义的。

我的猜测是,因为应用程序处于后台模式,读取文件的时间有限,但我对此表示怀疑。

我正在使用以下内容从本地文件创建 AVPlayerItem。

NSURL* url = [NSURL fileURLWithPath:song.downloadFilePath]; [AVPlayerItem playerItemWithURL:url];

我尝试构建自己的 AVQueuePlayer 并使用 iOS Hysteria Player,但是这两个实例都给了我相同的离线下载播放错误。

非常感谢任何见解或解决方案。

谢谢!

0 投票
1 回答
3722 浏览

iphone - 删除 AVPlayerItem 观察者

如果我使用 KVO 来观察我的播放器项目,如下所示:

两个问题:

1) 项目播放完毕后,我是否需要移除我的观察者?(即在AVPlayerItemDidPlayToEndTimeNotification

2)如果我打电话[_avQueuePlayer removeAllItems],它是否也会删除每个项目的观察者?

0 投票
0 回答
129 浏览

ios - Xcode 6.1 中的 CFunctionPointer

CFunctionPointer受支持吗Xcode6?我正在尝试运行以下代码

但是我遇到了错误。在以前的版本发行说明中明确提到CFunctionPointer不可用。但在Xcode6.1 发行说明中没有提到。

如何在纯 swift 项目中传递回调。有没有其他方法可以在 swift 中获取缓冲区?

0 投票
1 回答
11526 浏览

ios - 预加载 AVPlayer 流媒体视频

我正在尝试使用 AVPlayer 播放流媒体视频而没有任何网络延迟。幸运的是,我们的应用程序在播放视频的屏幕之前有一个进度屏幕。我希望在这个进度屏幕上使用一些时间来预加载视频,以便它在下一个屏幕上播放而不会延迟。

我想出的最有前途的方法是使用 AVQueuePlayer 播放 2 个视频,第一个是我在屏幕外播放的视频(所以你看不到它)并且是无声的,所以你不会听到。根据我在 SO 上阅读的内容,当第 n 个视频接近完成时,AVQueuePlayer 会缓冲第 n+1 个视频。

这是我的代码:

这确实播放了我的第一个视频(为了调试,我有一个带有计数音轨的视频),但是当到达结尾并前进到下一个屏幕(在 playerItemDidReachEnd 中)时,我的真实视频不会立即播放。

为了确保我的 URL 正确,我在列表中颠倒了 blackVideoItem 和 realVideoItem,我确实听到了我的“真实”视频的配乐。

我搜索了很多,似乎没有一种方法可以毫不拖延地播放流媒体视频。我很想错。

0 投票
3 回答
2033 浏览

ios - AVQueuePlayer 没有前进到 iOS 8 中的下一个项目

我正在使用 AVQueuePlayer 播放一些视频,在 iOS 6 和 7 中一切正常。但是,在 iOS 8 中,当前 AVPlayerItem 播放完下一个视频时不会播放。在队列的 currentItem 属性上放置一个观察者表明队列将下一个视频设置为其当前项目,正如预期的那样,它只是不播放(即使有明确的播放调用)。

有没有人对可能发生的事情以及如何解决它有任何见解?有没有其他人遇到过这个问题?

0 投票
0 回答
170 浏览

ios - 在 AVQueuePlayer 中将静止图像作为视频播放

我想播放一系列视频和图像(就像 Snapchat 一样)。通过播放图像,我的意思是让它在屏幕上显示一段时间。我正在使用AVFoundation媒体捕获和播放,我正在使用swift开发此应用程序。我有.mp4视频和.jpg图像,我试图想出将.jpg图像转换为视频的最简单方法,这样我就可以简单地将所有内容添加到将作为参数传递给AVQueuePlayer初始化程序的资产数组中。

有人对如何做到这一点有任何见解吗?

0 投票
2 回答
571 浏览

ios - AVQueuePlayer 音频未播放

我有一个AVQueuePlayer设置如下的属性。声明报告音频应该可以正常播放(在NSLog应用程序运行时),但是在模拟器和 iOS 设备本身(iPhone 5s iOS 8.1.1)上进行测试时,没有音频播放。

我已经确认该设备没有静音,并且处于全音量状态。我正在使用 Xcode 6 和 iOS 8 SDK。我在“链接二进制文件”部分导入了 AVFoundation 框架,并将其导入我的班级。

0 投票
1 回答
216 浏览

objective-c - 带有 AVQueuePlayer 的音频可视化器

AVQueuePlayer正在尝试从. _ _ _ 任何人都可以帮助我解决此问题或将我链接到设置指南。我想使用队列功能,但是如果我无法设置一些东西,我会考虑自己管理队列并使用.AVQueuePlayer[audioPlayer updateMeters][audioPlayer numberOfChannels][audioPlayer averagePowerForChannel:]AVQueuePlayerAVAudioPlayer

谢谢你的帮助。