@NeoLight3

Как воспроизвести MP3/OGG файл из байтов в Unity- игре?

Я читал различные англоязычные форумы по этому вопросу:
https://answers.unity.com/questions/686240/audiocl...
https://stackoverflow.com/questions/16078254/creat...

Однако часть из них либо была связанна с загрузкой через HTTP, или нерабочий метод.
Вот мой код:
public void makeSound(CommandArgs args)
        {
			try
			{
				var bytes_music = File.ReadAllBytes("Unturned_Data/Managed/mods/clip.ogg");
				float[] f = ConvertByteToFloat(bytes_music);
				AudioClip audioClip = AudioClip.Create("testSound", f.Length, 1, 44100, false, false);
				audioClip.SetData(f, 0);
				AudioSource.PlayClipAtPoint(audioClip, args.sender.position, 1.0f);
				Reference.Tell(args.sender.networkPlayer, "Successfully created sound");
			}
			catch(Exception ex)
            {
				Reference.Tell(args.sender.networkPlayer, $"Error: {ex}");
            }
		}


Функция ConvertByteToFloat(bytes_music) :
private float[] ConvertByteToFloat(byte[] array)
		{
			float[] floatArr = new float[array.Length / 4];
			for (int i = 0; i < floatArr.Length; i++)
			{
				if (BitConverter.IsLittleEndian)
					Array.Reverse(array, i * 4, 4);
				floatArr[i] = BitConverter.ToSingle(array, i * 4) / 0x80000000;
			}
			return floatArr;
		}


Я загружаю массив байтов из файла clip.ogg (пробовал и с mp3), в переменную bytes_music.
Аудио проигрывается, однако только шумы (

Вопрос, что я сделал не так?
  • Вопрос задан
  • 58 просмотров
Пригласить эксперта
Ответы на вопрос 1
ShockWave2048
@ShockWave2048
imposter
Попробуйте загрузить через UnityWebRequestMultimedia.GetAudioClip("file://", AudioType.OGGVORBIS).
Он поддерживает загрузку локальных файлов через префикс - "file://".
https://forum.unity.com/threads/load-mp3-files-sav...
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
Frostgate studio Новосибирск
от 60 000 до 100 000 ₽
BRIO MRS Казань
от 70 000 до 120 000 ₽
Stark Games Минск
До 3 500 $
29 сент. 2020, в 12:09
10000 руб./за проект
29 сент. 2020, в 11:26
1000 руб./за проект
29 сент. 2020, в 11:06
5000 руб./за проект