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

ios - 播放视频时 AVPlayerItem 状态 AVPlayerStatusFailed

我使用AVPlayer. 当我播放下一个视频时,有时会显示以下错误消息:

错误域=AVFoundationErrorDomain 代码=-11850“操作已停止”UserInfo=0x1744796c0 {NSUnderlyingError=0x170055db0“操作无法完成。(OSStatus 错误-12939。)”,NSLocalizedFailureReason=服务器未正确配置。,NSLocalizedDescription=操作停止}

我发现11850错误是:AVErrorServerIncorrectlyConfigured这意味着

发送媒体资源的 HTTP 服务器未按预期配置。这可能意味着服务器不支持字节范围请求。

请帮我解决这个问题,这是我播放视频的代码

0 投票
0 回答
866 浏览

avplayer - iOS 9:与 AVPlayer.masterClock 同步问题

在我的应用程序中,我AVPlayerItem用来播放声音和AVPlayer播放视频。要同步两个播放器,我使用以下代码:

在 iOS 7 和 iOS 8 上,它就像一个魅力。但是对于 iOS 9,我一直遇到问题。播放开始但总是跳回几秒钟 - 所以播放不流畅。

我会很感激每一个提示。

谢谢你。

更新

似乎这masterClock不是问题的原因。我在没有设置的情况下尝试了它,但masterClock仍然遇到同样的问题。

在另一个应用程序中,我使用AVAudioPlayer音频播放和AVPlayer视频AVPlayerItem播放,一切正常。

在这个应用程序中,我有一个AVPlayer用于AVPlayerItem音频和视频播放的功能,这似乎是导致问题的原因。它适用于较旧的 iOS 版本,但不适用于 iOS 9。

更新

我用 iOS 10 对其进行了测试,并且错误消失了。此问题仅在 iOS 9 下出现。

0 投票
1 回答
5192 浏览

ios - 将 AVPlayerItem 与 Swift 中的新 AVPlayer 相关联?

如何在 Swift 中将实例AVPlayerItem与新实例重新关联?AVPlayer在初始化程序中使用时。每次我尝试将 an 重新分配AVPlayerItem给不同的对象时,AVPlayer即使我已经设置了对 to 的所有引用AVPlayernil因此它应该被垃圾收集),它抱怨 anAVPlayerItem不能分配给超过 1 个AVPlayer对象。我了解一些绕过它的方法,但我想知道为什么这种方法不起作用。

我不知道在此声明期间会发生什么,但在某处设置了一些东西以允许 somePlayerItem 知道它有一个关联的播放器。这是否在某处设置了一些观察者或设置了会注意到这一点的属性?

有谁知道在原始的引用被破坏后将其重新分配AVPlayerItem给不同的方法?我知道我可以使用 URL 创建一个新对象,但我想知道我是否可以保留相同的对象。AVPlayerAVPlayerAVPlayerItem

0 投票
0 回答
914 浏览

ios - 在 AVPlayer 中单击按钮播放下一个视频

我有 2 个视频。我正在使用 AVPlayer 播放视频。第一个在 App 启动时加载,当我单击下一个视频时,它应该从头开始播放该视频。怎么做到呢?

我正在使用以下代码尝试切换到下一个视频

0 投票
1 回答
847 浏览

ios - AVPlayer Stops Buffering

Im trying to fully load a video URL into an AVPlayer before the user is able to play the video, for seamless playback.

I add two observers to the AVPlayerItem:

I wait until value is equal to the duration of the video - fully loaded.

But this rarely happens. The player usually stops buffering at around 3 for a five second video. Then the "playbackBufferFull" is called

How can I increase the buffer size? Or how to buffer the rest of the video once playbackBufferFull is called? The videos being played, are only five seconds long.

0 投票
0 回答
399 浏览

ios - 从 SKVideoNode 播放时在 SceneKit 中旋转位置音频

我正在使用 SceneKit 编写 360º VR 体验。它在用户周围的圆顶中显示视频。

SpriteKit 场景正在使用 SKVideoNode 播放视频源。这个 SpriteKit 场景在 SceneKit 中被包裹在一个球体上,创建了圆顶,因此:

回放很棒;我看到 360º 视频并听到音频。我想添加位置音频,以便当用户旋转时,声音会随着他们一起移动。不是移动位置,而是随着用户的头部旋转(类似Oculus Rift)。

我怎样才能做到这一点?

一些研究:

  • 理想情况下,我可以告诉 SpriteKit 我的轮换。

  • 下一个最好的方法是访问音轨(例如,带有 5.1 音频的 MP4 中的 6 个音轨)并将每个音轨附加到 3D 场景中的节点。

  • SpriteKit 和 SceneKit 都支持位置音频。

  • SKScene有财产listener。但是在 2D 世界中,SKNode 不知道旋转;我无法设置当前的头部旋转。

  • SceneKit 有audioListener节点,我可以告诉我的头部旋转。但这需要SCNAudioPlayer我没有的 - SKVideoNode 正在播放视频和音频。如果我能告诉 SCNAudioPlayer SKVideoNode 的音轨就好了!

  • SKScene还提供audioEngine- 可以从这里获得曲目吗?

  • 没有 SCNVideoNode,所以我必须使用 SKVideoNode。

在这种情况下有没有办法进行位置音频?

0 投票
1 回答
6942 浏览

ios - AVPlayer 有时无法播放视频

AVPlayer 无法播放视频

我有视频网格,AVPlayer 有时无法播放视频并显示此禁用图标并出现以下错误,

但是稍后会播放相同的视频,因此这是随机问题。对出了什么问题有任何帮助吗?

0 投票
1 回答
2509 浏览

ios - 创建太多 AVPlayer 实例时出现 AVPlayerItemStatusFailed 错误

我正在开发一个 iOS 应用程序,该应用程序创建用户池提交的所有视频的提要,使用户能够浏览和查看其他人创建的视频。正如您所想象的,我需要能够在提要中支持任意数量的视频。

目前,我正在为每个视频创建并保留一个 AVPlayer 实例,如下所示:

当用户点击 时,我会打电话play,一切正常。也就是说,直到有足够多的视频被提交到提要......_videoPlayerUIView

一旦提要中存在超过 18 个视频,新实例AVPlayer将无法播放,并且_videoPlayer.currentItem.status会出现AVPlayerItemStatusFailed模棱两可的错误Code=-11800 "The operation could not be completed"。有趣的是,无论前 18 个视频的长度和质量如何,总是第 19 个视频最先被破坏。

我认为我不应该创建所有这些 AVPlayer 实例。我尝试使用 AVPlayer 单例包装器,当用户想要播放视频时,我将共享的 AVPlayer 实例传递给相关的 UIView。这消除了AVPlayerItemStatusFailed错误,但使播放变得无法使用。

我还没有找到这个问题的任何其他帐户。如果有人能提供一些关于这种情况的更好方法的见解,或者甚至可以为我指出一个好的 AVPlayer 教程的方向,我将非常感激。谢谢!

0 投票
3 回答
1270 浏览

ios - How to set AVPlayerItem to nil when observer does not complete

I add a observer named 'status' into AVPlayerItem. Send the observer then set AVPlayerItem to nil when the observer does not complete

I have remove the observer when dealloc AVPlayerItem

Get the following error:

NSInternalInconsistencyException', reason: 'An instance 0x7dc5e7d0 of class AVPlayerItem was deallocated while key value observers were still registered with it. Current observation info: ( Context: 0x0, Property: 0x7b8ad140>

0 投票
1 回答
384 浏览

ios - 在 iOS 上使用 Reachability 在 m3u8 (HLS) 中选择合适的索引文件

根据Apple 的 HTTP Live Streaming Guide

如果您是 iOS 应用程序开发人员,您可以查询用户的设备以确定初始连接是蜂窝还是 WiFi 并选择合适的主索引文件。

我了解如何使用 Reachability 来确定连接,但是,我不明白如何告诉 AVPlayer 在 m3u8 的索引文件中加载不同的文件。

我有点困惑,也许它会自动执行此操作?但是我不明白他们为什么建议你这样做。(最终,我想确保即使在 3G/Edge 连接上我的视频也能尽快播放,所以我想确保我正在加载适当的文件进行播放)。