Хорошо, так что если кто-то захочет воспроизвести в приложении React .ogg / opus audio в Safari, вот решение (использование библиотеки ogv.js ).
все, поместите файлы библиотеки в свое приложение React.Для опуса вам понадобится:
- ogv-demuxer-ogg.js
- ogv-demuxer-ogg-wasm.js
- ogv-demuxer-ogg-wasm.wasm
- ogv-decoder-audio-opus.js
- ogv-decoder-audio-opus-wasm.js
- ogv-decoder-audio-opus-wasm.wasm
- ogv-worker-audio.js
После этого в вашем коде:
Требовать библиотеку после всех импортов:
var ogv = require('ogv');
Установите базовый путь для файлов из папки PUBLIC :
// process.env.PUBLIC_URL simply a ref for the root folder of the react app
ogv.OGVLoader.base = process.env.PUBLIC_URL + '/ogv';
Затем вы можете использовать его следующим образом:
play = () => {
var player = new OGVPlayer();
// this.props.audioData just some audio data
var blob = new Blob([new Uint8Array(this.props.audioData)]);
player.src = URL.createObjectURL(blob);
player.play();
}
У этого проигрывателя есть несколькоаналогично стандартным возможностям HTML5 Audio, подробнее вы можете проверить это по ссылке выше.
Возможно, не лучшее решение, но, по крайней мере, оно работает:)