依次播放多个音频片段

Posted

技术标签:

【中文标题】依次播放多个音频片段【英文标题】:Play several audio clips sequentially 【发布时间】:2017-09-28 15:42:46 【问题描述】:

我有一个基于团结的游戏,可以玩超过 3-5 分钟。所以,我想要一组可以一个接一个播放的歌曲(至少 2 首)。

我知道如何将一个特定的音频源设置为场景的主摄像机并将其设置为循环;但这会很单调,所以我想知道如何将一组歌曲添加到特定场景中并按顺序播放?

任何帮助将不胜感激。谢谢。

【问题讨论】:

【参考方案1】:

如何将一组歌曲添加到特定场景并以 顺序时尚

这真的很容易。仅使用一个Audiosource。使用 AudioClip 保存要播放的音频。如果可能,请使用AudioClip 数组。

1.使用for循环遍历AudioClip数组。

2。在每个循环中,将循环中的当前AudioClip 分配给AudioSource.clip 变量。

3. 之后拨打AudioSource.Play(); 播放音频。

4.使用while循环等待当前AudioClip完成与while (AudioSource.isPlaying) yield return null;的播放

5。返回#2

public AudioSource adSource;
public AudioClip[] adClips;

IEnumerator playAudioSequentially()

    yield return null;

    //1.Loop through each AudioClip
    for (int i = 0; i < adClips.Length; i++)
    
        //2.Assign current AudioClip to audiosource
        adSource.clip = adClips[i];

        //3.Play Audio
        adSource.Play();

        //4.Wait for it to finish playing
        while (adSource.isPlaying)
        
            yield return null;
        

        //5. Go back to #2 and play the next audio in the adClips array
    

要启动它,只需致电StartCoroutine(playAudioSequentially());

【讨论】:

如何将多首歌曲添加到一个音频源中的音频剪辑中?我只能选择一首歌.. 循环中的一首歌曲不需要代码。只需将音频拖到 AudioSource 的 AudioClip 插槽,然后启用 Loop 和 Play On Awake。就是这样,但你正在做一些不同的事情。你需要一个代码来做到这一点。使用我上面提供的解决方案,并从编辑器将任意数量的音频加载到 adClips 插槽。 如何只播放一次列表然后停止并且不循环播放列表? 这将播放列表并在最后一首歌之后停止。不确定这是否是预期的结果。

以上是关于依次播放多个音频片段的主要内容,如果未能解决你的问题,请参考以下文章

请问js如何实现多个音频文件依次播放,而不是同时播放?如何实现播放制定位置,如音频3秒到10秒之间

按顺序播放多个音频文件(Javascript)

如何使用 AVAudioPlayer 连续播放多个音频文件?

如何在 iOS 4 中在后台播放多个音频文件?

unity中如何播放音频的指定区间?

在 IOS 中,如何乱序播放音频片段的一部分?