Воспроизведение аудио останавливается / останавливается в Chrome 64

Google только что изменил, как Chrome перезагружается audio и video; см.: https://googlechrome.github.io/samples/media/preload-metadata

это мое понимание, что просто установка до auto должен исправить проблему, однако, я не смог сделать Итак:

let mp3 = 'https://s3-staging.read2me.online/audio/5a745d88483d86.76121223.mp3';
let audio = new Audio(mp3);
audio.preload = 'auto';

audio.play();

<audio src="https://s3-staging.read2me.online/audio/5a745d88483d86.76121223.mp3" preload="auto" autoplay></audio>

оба они перестанут играть в течение минуты на Chrome 64 и Chrome 65-dev (другие браузеры и более старые Хромы не затронуты). Мне повторили эту проблему на Mac, Windows и Андроид.

во время моего процесса отладки я прикрепил все возможных мероприятий для СМИ к объекту JS (т. е. audio.addEventListener('timeupdate', () => { console.log('timeupdate') })) и сначала события стреляли так:

progress timeupdate progress timeupdate [...]

позже, как это: timeupdate timeupdate timeupdate [...]

когда воспроизведение звука остановилось, я получил несколько error события и сброс audio.error возвращает: PIPELINE_ERROR_DECODE: Failed to send audio packet for decoding: timestamp=81763265 duration=26122 size=201 side_data_size=0 is_key_frame=1 encrypted=0 discard_padding (ms)=(0, 0)

как это исправить? Это хром жучок?

обновление:

обновление 2:

chrome://media-internals/ показывает это:

enter image description here

обновление 3:

эта проблема была исправлена в Chrome 65.

2 ответов


после нескольких дней проб и ошибок и исследований я подтвердил, что не работает и работает.

не работает

mp3wrap

mp3wrap output.mp3 *.mp3 выходной файл по-прежнему поврежден и останавливается

ffmpeg

ffmpeg -i "concat:0.mp3|1.mp3" -acodec copy output.mp3 выходной файл по-прежнему поврежден и останавливается

работает

mp3val с аргументом-f

просто объедините / взорвите свои звуковые двоичные файлы (в PHP я делаю implode('', $audioBinaries) и затем запустите mp3val -f concatenated-audio-file.mp3. The -f аргумент имеет важное значение, и это означает "попытаться исправить ошибки".

Как установить mp3val?

На MacOS: brew install mp3val На Deb / Ubu:apt-get install mp3val


та же проблема, с которой я сталкиваюсь с техникой конкатенации. С ffmpeg он работает нормально. Попробовать ffmpeg с этой командой.

ffmpeg -f concat -i "{textfile}" -c:v copy -ab 48k -y "{output}"

текстовый файл появится список файлов, написанных на линию.