Как добиться моментального воспроизведения потокового m3u8 файла на IOS?

Здравствуйте. Вывожу трек длинной в 2 часа в плерее в формате m3u8 (пооковый), работает просто идеально на ПК, на Android но не на IOS конечно-же! На IOS после нажатия на Play трек грузится минут 5-10 потом только начинается воспроизведение! Нажал на паузу, снова на play и снова 5-10 минут!
На android / windows все летает моментально.

m3u8 создаю так:
ffmpeg -y -i "Rompasso.mp3" -c:a aac -b:a 128k -muxdelay 0 -f segment -sc_threshold 0 -segment_time 5 -segment_list "playlist.m3u8" -segment_format mpegts "file%d.m4a"


Плеер на сайте работает так:
<audio id="audioPlayer" controls></audio>

Подключаю
<script src="https://cdn.jsdelivr.net/npm/hls.js@latest"></script>
как раз для android / windows. IOS это не поддерживает, как указано "Он итак работает с hls", оно и видно как...

var audioPlayer = document.getElementById('audioPlayer');
	var hls = new Hls();
	var streamURL = 'playlist.m3u8';

	if (Hls.isSupported()) {
		hls.loadSource(streamURL);
		hls.attachMedia(audioPlayer);
	} else {
		audioPlayer.src = 'playlist.m3u8';
	}
  • Вопрос задан
  • 377 просмотров
Решения вопроса 1
Daemon23RUS
@Daemon23RUS
a) hls.on(Hls.Events.MANIFEST_PARSED .... play (похожий евент сделать ветке исполнения IOS)
b) .m3u8 MIME Type: vnd.apple.mpegURL (в ответе сервера, и если мне память не изменяет для кроссустройств должен быть другой тип, не помню какой именно)
Сложно сказать, что у Вас происходит не видя чуть более полного кода. Можно предположить что IOS подгружает полностью аудио и стартует после этого.
P.S. у ТС проблема с IOS решилась заменой формата сегментов
ffmpeg \
-i Rompasso.mp3 \
-vn -ac 2 -acodec aac \
-f segment -segment_format mpegts -segment_time 10 \
-segment_list audio_pl.m3u8 \
audio_segment%05d.ts
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы