Как подключить 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);
}
Затем вам нужно будет прочитать волновой файл, который будет иметь заголовок и данные чанка. Данные чанка могут быть преобразованы в число с плавающей точкой и отправлены в ваш аудиоклип.