问题标签 [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.
ios - 播放视频时 AVPlayerItem 状态 AVPlayerStatusFailed
我使用AVPlayer
. 当我播放下一个视频时,有时会显示以下错误消息:
错误域=AVFoundationErrorDomain 代码=-11850“操作已停止”UserInfo=0x1744796c0 {NSUnderlyingError=0x170055db0“操作无法完成。(OSStatus 错误-12939。)”,NSLocalizedFailureReason=服务器未正确配置。,NSLocalizedDescription=操作停止}
我发现11850错误是:AVErrorServerIncorrectlyConfigured
这意味着
发送媒体资源的 HTTP 服务器未按预期配置。这可能意味着服务器不支持字节范围请求。
请帮我解决这个问题,这是我播放视频的代码
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 下出现。
ios - 将 AVPlayerItem 与 Swift 中的新 AVPlayer 相关联?
如何在 Swift 中将实例AVPlayerItem
与新实例重新关联?AVPlayer
在初始化程序中使用时。每次我尝试将 an 重新分配AVPlayerItem
给不同的对象时,AVPlayer
即使我已经设置了对 to 的所有引用AVPlayer
(nil
因此它应该被垃圾收集),它抱怨 anAVPlayerItem
不能分配给超过 1 个AVPlayer
对象。我了解一些绕过它的方法,但我想知道为什么这种方法不起作用。
我不知道在此声明期间会发生什么,但在某处设置了一些东西以允许 somePlayerItem 知道它有一个关联的播放器。这是否在某处设置了一些观察者或设置了会注意到这一点的属性?
有谁知道在原始的引用被破坏后将其重新分配AVPlayerItem
给不同的方法?我知道我可以使用 URL 创建一个新对象,但我想知道我是否可以保留相同的对象。AVPlayer
AVPlayer
AVPlayerItem
ios - 在 AVPlayer 中单击按钮播放下一个视频
我有 2 个视频。我正在使用 AVPlayer 播放视频。第一个在 App 启动时加载,当我单击下一个视频时,它应该从头开始播放该视频。怎么做到呢?
我正在使用以下代码尝试切换到下一个视频
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.
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。
在这种情况下有没有办法进行位置音频?
ios - 创建太多 AVPlayer 实例时出现 AVPlayerItemStatusFailed 错误
我正在开发一个 iOS 应用程序,该应用程序创建用户池提交的所有视频的提要,使用户能够浏览和查看其他人创建的视频。正如您所想象的,我需要能够在提要中支持任意数量的视频。
目前,我正在为每个视频创建并保留一个 AVPlayer 实例,如下所示:
当用户点击 时,我会打电话play
,一切正常。也就是说,直到有足够多的视频被提交到提要......_videoPlayer
UIView
一旦提要中存在超过 18 个视频,新实例AVPlayer
将无法播放,并且_videoPlayer.currentItem.status
会出现AVPlayerItemStatusFailed
模棱两可的错误Code=-11800 "The operation could not be completed"
。有趣的是,无论前 18 个视频的长度和质量如何,总是第 19 个视频最先被破坏。
我认为我不应该创建所有这些 AVPlayer 实例。我尝试使用 AVPlayer 单例包装器,当用户想要播放视频时,我将共享的 AVPlayer 实例传递给相关的 UIView。这消除了AVPlayerItemStatusFailed
错误,但使播放变得无法使用。
我还没有找到这个问题的任何其他帐户。如果有人能提供一些关于这种情况的更好方法的见解,或者甚至可以为我指出一个好的 AVPlayer 教程的方向,我将非常感激。谢谢!
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>
ios - 在 iOS 上使用 Reachability 在 m3u8 (HLS) 中选择合适的索引文件
根据Apple 的 HTTP Live Streaming Guide:
如果您是 iOS 应用程序开发人员,您可以查询用户的设备以确定初始连接是蜂窝还是 WiFi 并选择合适的主索引文件。
我了解如何使用 Reachability 来确定连接,但是,我不明白如何告诉 AVPlayer 在 m3u8 的索引文件中加载不同的文件。
我有点困惑,也许它会自动执行此操作?但是我不明白他们为什么建议你这样做。(最终,我想确保即使在 3G/Edge 连接上我的视频也能尽快播放,所以我想确保我正在加载适当的文件进行播放)。