Мне нравится добавлять на Youtube эффект панорамирования звука.
Но я обнаружил, что API веб-аудио работает в Chrome, но не в Safari (v.13.1 на MacOS 10.15.4)
Шаги для воспроизведения:
- Откройте Youtube Video в Safari
- Откройте консоль разработчика и вставьте следующий код
var button = document.createElement("button");
button.innerHTML = "Pan";
button.style.position = "fixed"
button.style.backgroundColor = "#0C9"
button.style.bottom = "20px"
button.style.right = "20px"
button.style.fontSize = "24px"
document.body.appendChild(button);
let audioCtx = new (window.AudioContext || window.webkitAudioContext);
const videoElement = document.querySelector('video');
button.onclick = () => {
console.log("== onclick ==")
const source = audioCtx.createMediaElementSource(videoElement);
var panner = audioCtx.createPanner();
panner.panningModel = 'equalpower';
panner.setPosition(-1, 0, 0);
source.connect(panner);
panner.connect(audioCtx.destination);
};
Нажмите кнопку Pan
Он должен сдвинуть звук влево. Но в Safari это не сработало.
Действие запускается щелчком пользователя и не нарушает ограничение на перекрестное происхождение .
Я что-то пропустил?