Я создаю приложение Music Player для Android в Unity3d. Для функции show_currentPlayTime () я хочу получить значение AS.time для отображения текущего playTime. Для функции seek () я хочу установить значение AS.time, чтобы добраться до этой конкретной точки AudioClip. Но проблема в том, что AS.time дает мне 0.
Я попытался установить AudioClip в AudioSource. Это работает таким образом, но звук искажается и показывает ненормальное поведение.
Объявление переменных:
public AudioSource AS;
[Range(0.0f, 1.0f)]
public Slider Volume;
public Slider slider;
bool isPlaying;
public List<AudioClip> AC = new List<AudioClip>();
int currentSong = 0;
Функция воспроизведения:
public void Play()
{
AS.Stop();
AS.PlayOneShot(AC[currentSong]);
//AS.clip = AC[currentSong]; ---
//AS.Play(); ---
//AS.clip = AC[currentSong]; ---
//AS.PlayOneShot(AS.clip); ---
clipInfo.text = AC[currentSong].name;
Debug.Log(AC[currentSong].name);
CancelInvoke();
Invoke("Next", AC[currentSong].length);
isPlaying = true;
}
Программа работает с использованием --- строк в приведенном выше коде, но при этом звук искажается.
Функция поиска музыки:
public void MusicSlider()
{
AS.time = AC[currentSong].length * slider.value;
slider.value = AS.time / AC[currentSong].length;
Debug.Log(AS.time);
}
AS.time дает мне значение = 0.