HTML5 移动设备:在 iOS 上仅播放视频流中的一侧音频

HTML5 mobile: Play only one side of audio from a video stream on iOS

本文关键字:视频 音频 播放 移动 iOS HTML5      更新时间:2023-09-26

>我正在尝试在iOS上播放视频,同时只听立体声音频的一侧。

下面的代码在桌面Chrome上运行良好,但在8.3 iOS的iPhone5上的Safari上则不行。

var AudioContext = window.webkitAudioContext;
  var audioCtx = new AudioContext();
  var splitter = audioCtx.createChannelSplitter(2);
  var merger = audioCtx.createChannelMerger(1);
  source = audioCtx.createMediaElementSource(video);
  source.connect(splitter);
  splitter.connect(merger, 0); 
  merger.connect(audioCtx.destination);

"video"是对 DOM 视频元素的引用。

任何帮助将不胜感激

多谢

萨尔

这是一个填充代码,用于检查 Web 音频是否存在以及是否使用 -webkit

//borrowed from underscore.js
function isUndef(val){
    return val === void 0;
}
if (isUndef(window.AudioContext)){
    window.AudioContext = window.webkitAudioContext;
} 
if (!isUndef(AudioContext)){
    audioContext = new AudioContext();
} else {
    throw new Error("Web Audio is not supported in this browser");
}

这里还有一个类似的IOS错误可能会有所帮助。

检查设备使用哪种音频上下文,而不是使用 || 。 例如:

var AudioContext 
if('webkitAudioContext' in window) {
   AudioContext = new webkitAudioContext();
}
else{
   AudioContext = new AudioContext ();
}