unity3d byte[]到音频片段-音频中的噪声

eufgjt7s  于 2022-12-04  发布在  其他
关注(0)|答案(1)|浏览(174)

我使用此代码打开我的设备资源管理器,选择一个音频文件,并将其作为场景中对象的音频源剪辑插入。

public GameObject evento;
    public AudioSource audio;
    string path = Application.streamingAssetsPath;

    EditorGUIController editorGUIController;

    private void Awake() {
        editorGUIController = GameObject.FindObjectOfType<EditorGUIController>();
        audio = evento.GetComponent<AudioSource>();            

    }

    public void InsertAudio(){ 
        #if UNITY_EDITOR
        
        path = EditorUtility.OpenFilePanel("Overwrite with wav", "", "wav");
        audio.clip = LoadMP3(path);
        
        #endif
    }

    public static AudioClip LoadMP3(string path){
        byte[] fileData;
        AudioClip clip = null;
        if (File.Exists(path)){
            int indice = path.LastIndexOf("/");
            string audioNameA = path.Substring(indice+1);
            string audioName = audioNameA.Substring(0, audioNameA.Length-4);

            fileData = File.ReadAllBytes(path);
            if(fileData.Length>0) {Debug.Log ("fileData: "+ fileData.ToString());}
            float[] samples = new float [fileData.Length/4 +1];

            Buffer.BlockCopy(fileData,0,samples,0,fileData.Length);
            int channels = 1;
            int sampleRate = 48000;
            clip = AudioClip.Create(audioName,samples.Length, channels,sampleRate,false);
            clip.SetData(samples,0);
        }
        return clip;
            
    }

不幸的是,当我启动这个方法时,音频以一种非常烦人的噪音开始(可以说是电视的嗡嗡声):

public void playAudio(){
           evento.GetComponent<AudioSource>().Play();
       }

我很确定问题是在浮点到音频源的转换,但我不知道如何解决它。一些想法?

rqqzpn5f

rqqzpn5f1#

我没有足够的声誉,所以我不能评论-_-我有同样的问题,仍然不知道答案,但如果你有一个路径或网址,你可能会对使用UnityWebRequestMultimedia.GetAudioClip感兴趣

相关问题