Как подключить AudioClip в локальный файл

Я скачал файл.mp3 с сервера и сохранил его в своем Android persistentDataPath. Но я не знаю, как подключить файлы.mp3 к AudioClip. Пожалуйста, дайте мне знать, если есть обходной путь для этого.

1 ответ

Решение

Обновить

Как указано в комментариях WWW теперь поддерживает файлы.mp3, что делает его более подходящим.

using UnityEngine;
using System.Collections;

public class ExampleClass : MonoBehaviour {
    public string url;
    public AudioSource source;
    void Start() {
        WWW www = new WWW(url);
        source = GetComponent<AudioSource>();
        source.clip = www.audioClip;
    }
    void Update() {
        if (!source.isPlaying && source.clip.isReadyToPlay)
            source.Play();

    }
}

Оригинальный ответ:

Аудио клип не принимает файл. Он принимает массив с плавающей точкой.

Вы можете использовать NAudio для преобразования сжатого MP3 в файл WAV.

using NAudio;
using NAudio.Wave;
// ....

using (Mp3FileReader reader = new Mp3FileReader(mp3File))
{
    WaveFileWriter.CreateWaveFile(outputFile, reader);
}

Затем вам нужно будет прочитать волновой файл, который будет иметь заголовок и данные чанка. Данные чанка могут быть преобразованы в число с плавающей точкой и отправлены в ваш аудиоклип.

Другие вопросы по тегам