audio - 在 Unity 中创建音频源并分配剪辑

标签 audio unity-game-engine unityscript

各位,我在 Unity 中创建音频源并为其分配剪辑时遇到问题。

我正在流式传输文件,调试器告诉我它已找到该文件并且可以使用以下代码进行播放。

@script RequireComponent(AudioSource)

var www : WWW;
var audioSource: AudioSource = gameObject.AddComponent<AudioSource>();
var myAudioClip: AudioClip;


function Start ()
{
      www = new WWW ("file://" + Application.dataPath.Substring (0, Application.dataPath.LastIndexOf ("/")) + "/Assets/intro.wav"); 
      myAudioClip = www.audioClip;
      Debug.Log(myAudioClip.isReadyToPlay);
}

但是调试器在我的音频源声明中给出了错误。

Unexpected Token: )
expecting ), found ';'
'; expected, insert a semicolon at the end.

此错误指向该行

var audioSource: AudioSource = gameObject.AddComponent();

最终我的目标是将剪辑分配给音频源并开始录制!

最佳答案

您已经声明需要 AudioSource 组件;

@script RequireComponent(AudioSource)

所以不需要将其添加为组件。我通常不使用 UnityScript,但这是您想要的代码;

@script RequireComponent(AudioSource)

var www             : WWW;
var audioSource : AudioSource;
var myAudioClip : AudioClip;

function Start () {
    audioSource = GetComponent(AudioSource);
    StartCoroutine( LoadAudio( "file://" + Application.dataPath.Substring (0, Application.dataPath.LastIndexOf ("/")) + "/Assets/intro.wav" ) );
}

function LoadAudio( path : String ) {
    www = new WWW ( path );
    yield www;
    myAudioClip = www.audioClip;
    Debug.Log(myAudioClip.isReadyToPlay);
}

要使用 WWW 类,您可以使用协程来等待它完成加载您需要的资源。或者您可以继续检查 www.isDone 是否为 true。

文档; http://docs.unity3d.com/ScriptReference/Coroutine.html

关于audio - 在 Unity 中创建音频源并分配剪辑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25922411/

相关文章:

javascript - HTML5视频时长

ios - ProcessPurchase 事件被多次调用 - Unity IAP

ios - Unity FB SDK on iOS : Problems with FB. Feed 功能

ios - 在 Xcode 中使用 unity 5.3.4 和 IPAD 2 显示启动画面然后关闭应用程序的项目

ios - Unity3d 在 iPhone 上的表现

c# - 带变量名的迭代

c# - Unity C# 相机移动

javascript - JAVASCRIPT音频应用程序:按钮不会根据设备而改变

audio - FFmpeg concat 音频与视频或 gif 循环

audio - ffmpeg 复制音频流并对这个新流进行编码