c# - 停止音频剪辑/音频源

标签 c# audio unity3d

我有一个很长的音频剪辑,当满足某个条件时(下面的代码中的第一个IF)应该开始播放,并继续播放直到满足另一个条件(第二个IF)。

问题是我无法弄清楚如何使音频剪辑停止播放,我尝试了audio.Stop(),但它说Stop()的定义为n,您能帮上忙吗?

using UnityEngine;
using System.Collections;

public class PowerShutdown: MonoBehaviour {

    public AudioClip[] on_sfx;
    int i;
    int k;

    void Start () 
        {
        k = 1; 
        }

    void Update () 
        {
        if (PlayLevel1.percentageLoadProductionint < 100 && StateManager.activeState is PlayState && Time.timeSinceLevelLoad > 1 && k== 1) 
            {
            AudioSource.PlayClipAtPoint (on_sfx [0], transform.position);
            k = 2;
            }

        if (PlayLevel1.percentageLoadProductionint > 100 && StateManager.activeState is PlayState && Time.timeSinceLevelLoad > 1 && k == 2)
            {
            audio.Stop ();
            AudioSource.PlayClipAtPoint (on_sfx [1], transform.position);
            k = 1;
            }
        }
}

谢谢!

最佳答案

我认为问题是因为“PlayClipAtPoint”是静态方法,而由于引用错误,stop方法将出现问题。阅读文档后,它会显示“此功能会创建音频源,但剪辑播放完毕后会自动将其丢弃。”

这意味着将在指定的3D空间创建一个新的“AudioSource”以播放请求的音频。这意味着,您需要引用新的音频源(不确定如何做),或者使用其他播放方法。

关于c# - 停止音频剪辑/音频源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38130612/

相关文章:

c# - 使用 Windows 身份验证的 NHibernate 模拟

C# Func<> - 寻找解释 - 而不是解决方案

c# - 更改调用函数传递的变量的函数

audio - libsndfile 用法加入和混合 .wav 文件

unity3d - 与谷歌纸板统一 : Remove center divider with gear?

c# - MVC 会取代传统的手动创建的 BLL 吗?

algorithm - 音高等级检测音频库

ios - 单击后退按钮iOS 6时如何继续播放音频

c# - Lerp 颜色的 alpha 值

c# - (如何)我可以为变量引用制作字典吗?