问题标签 [avplayerlooper]

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 投票
1 回答
698 浏览

ios - 在 iOS 上循环播放一段音频

我想知道在 iOS 上在定义的持续时间内循环音频的最佳解决方案是什么。我目前正在玩

  • AVAudioPlayer(我可以定义重复计数但不能定义结束时间)
  • AVPlayer(我可以定义一个forwardPlaybackEndTime机器人而不是循环计数)
  • AVPlayerLooper(我还没有完全理解)

所以我需要定义重复某个声音文件的持续时间。Fe 我有一个 8 秒的 mp3,想播放 fe 一分钟。

如果我可以在重新开始时交叉淡入淡出,那也很棒。

0 投票
2 回答
183 浏览

swift - “advanceToNextItem()”不允许循环播放所有视频

我有基于KVO. 但是,除了自动播放之外,我还想使用NSButton. 因此,如果我Next Video在我的序列自动播放时按下按钮,此操作会将我推进到队列中的下一个剪辑。但它没有以正确的方式工作。

问题是:当队列结束时,队列中的所有剪辑都没有循环。只有第一个剪辑有一个循环(如果我按下Next Video按钮 10 次 -只有第一个剪辑循环 10 次),之后所有剪辑都会正常自动播放。

问题如何(在推进时)使用 NSButton 循环播放所有视频

这是我的代码:

这是我的视图控制器:

在此处输入图像描述

0 投票
1 回答
197 浏览

ios - AVPlayerLooper,带有 AVMutableAudioMixInputParameters 的 AVComposition :循环之间的音量不稳定

我使用 AVPlayerLooper 在 AVPlayer 内循环播放视频。视频实际上是一个 AVComposition 合并了两个音频轨道和一个视频轨道。

我在组合上应用了两个 audiomix 输入参数,一个用于每个音轨来管理它们各自的音量(使用 setVolume() 方法)。另请注意,其中一个音轨还有一个抽头处理器来应用一些音频过滤器,使用 audiomix 输入参数中的专用属性。

一切似乎都很好,但我注意到音量有问题:

第一个循环很好,可以渲染预期的音量,但下一个循环的音量似乎是随机的,一个循环处于预期的音量(比如说 setVolume() 中的 4.0),另一个循环是默认的(1.0)。

请注意,如果我在音量低于预期的循环中播放时将 AVPlayer 静音和取消静音,则音量会恢复到其配置和预期的值。

请注意,使用 AVAssetExportSession 在文件中导出相同的组合(因此从任何循环器中导出)效果很好,音量始终符合预期。

你有什么提示可以帮助我解决这个问题吗?

0 投票
4 回答
2592 浏览

ios - AVPlayerLoop 没有无缝循环 - Swift 4

我的问题是:我正在尝试进行无缝循环(我打算让我的 AVPlayer 或 AVPlayerQueue,循环播放之间没有任何延迟)。因此,例如,如果我制作一个视频并进行播放,它应该无限循环,中间没有任何光点或循环延迟。

我已经编写了下面的代码(它也直接来自示例代码):

上面的代码没有无缝循环;它在当前播放器的结尾和下一个播放器之间有光点。我已经尝试了很多找到问题并在网上搜索并没有找到解决方案。此外,我一直在尝试 NSNotifications 和其他方法,包括在播放器完成播放时设置 Player.seek(to: zero)。但根本没有任何效果。

任何帮助,将不胜感激 :)

0 投票
1 回答
194 浏览

swift - 如何在 Swift 4 中设置视频的偏移量?Seek(to:) 似乎不起作用

我在设置 AVQueuePlayer 视频的偏移量时遇到问题。我已经尝试过 seek( 来设置视频的偏移量,但它似乎不起作用。视频总是从 0 秒开始。其他要求是通过控制播放它并循环播放,这些都可以正常工作。

我很喜欢从 0 秒以外的任何其他时间播放视频。

0 投票
0 回答
224 浏览

ios - 使用 AVPlayerLooper 时“因内存问题而终止”

AVPlayerLooper使用无限期循环播放视频时,我的应用程序因“因内存问题而终止”而崩溃。该问题仅发生在较旧的设备上(在 iPhone 6S 和更新版本上不会发生)并且循环非常短(小于 1 秒)。

我已经尝试使用 AVPlayer 并观察AVPlayerItemDidPlayToEndTime然后寻求手动开始,但这个解决方案会导致每个循环之间出现短暂的中断/打嗝,这会导致我的特定需求出现时间问题。在呼叫之前暂停seek(to: CMTime.zero)并不能解决问题。

这是我的 Looper 课程:

0 投票
1 回答
75 浏览

ios - AVFoundation 如何循环播放一段特定时间的音频?

我想在给定的持续时间内循环播放特定的音频。

例如;

10 秒。音频文件。预期循环持续时间:7 分钟。

在这个循环中,我必须观察循环迭代总数的剩余时间。

我尝试了AVQueuePlayerand AVAudioLooper,但没有优雅的选项来跟踪循环迭代的总持续时间/时间。

我对新想法持开放态度。

0 投票
0 回答
477 浏览

javascript - Expo av-player 无缝无缝循环交叉淡入淡出

根据我的经验和研究,Android 和 iOS 的开箱即用 AV 播放器不完全支持无缝/无缝循环。在其中任何一个上设置 isLooping=true 时,总会有一个明显的差距。我只能使用 SoundPool 让它在 Android 上无缝工作,但这仅适用于小型声音文件,而不适用于大型 mp3。

目前,我为 iOS 编写了一个“半有效”的解决方案,但奇怪的是它不适用于 Android。我猜他们至少应该是一致的?

另外,我很感兴趣是否有人可以帮助解决这个古老的问题,即以最有效的方式循环声音,而用户不会注意到间隙。这个交叉推子的想法是开箱即用的,也许有人可以帮助改进它。我还在世博论坛上开了一个讨论,如果有什么来自那里,我会在这里更新。

这是回购:https ://github.com/happyruss/expo-fader-loop

任何关于解决问题的建议都会很棒。对于尝试 react-native/expo 的人来说,这也是一个有趣的简单项目

0 投票
1 回答
349 浏览

ios - 如何将 AVPlayerLooper 与 AVPlayerItemVideoOutput 一起使用?

AVPlayerLooper接受一个模板AVPlayerItem和一个AVQueuePlayer作为设置参数,然后它在内部操作队列的项目,并且播放器不断地改变它的currentItem.

这与 完美配合AVPlayerLayer,它接受这个循环播放器作为参数并只渲染它,但是我如何使用它AVPlayerItemVideoOutput,它被附加到AVPlayerItem播放器内部有多个播放器?我如何在AVPlayerLayer内部重现相同的事情?

AVPlayerLooper来自文档的设置示例

这是AVPlayerItemVideoOutput应该如何使用

我想出的唯一解决方法是观察currentItem每次从旧项目中分离视频输出并将其附加到新项目的变化,如下例所示,但这显然抵消了我试图实现的无缝播放.

有关更多上下文,我正在尝试解决颤振的 video_player 插件https://github.com/flutter/flutter/issues/72878

插件的代码可以在这里找到https://github.com/flutter/plugins/blob/172338d02b177353bf517e5826cf6a25b5f0d887/packages/video_player/video_player/ios/Classes/FLTVideoPlayerPlugin.m

0 投票
0 回答
14 浏览

swiftui - 当警报或确认对话框显示时,SwiftUI AVPlayer 消失

我有一个 AVPlayer 包装器可以在 SwiftUI 中循环播放视频。但是,在我激活警报或确认对话框后,播放器将播放一次视频然后消失。请参阅https://youtube.com/shorts/pvMbMSbICgI?feature=share上的屏幕录像。任何人都知道如何解决这个问题?

问题出现在 ios 15.2 上。