Javascript HTML5 mobile:在iOS上仅播放视频流中的一侧音频

Javascript HTML5 mobile:在iOS上仅播放视频流中的一侧音频,javascript,ios,html,audio,web-audio-api,Javascript,Ios,Html,Audio,Web Audio Api,我尝试在iOS上播放视频,同时只听立体声音频的一侧 下面的代码在桌面Chrome上运行良好,但在iPhone5和8.3 iOS上的Safari上运行不好 var AudioContext = window.webkitAudioContext; var audioCtx = new AudioContext(); var splitter = audioCtx.createChannelSplitter(2); var merger = audioCtx.createChannelM

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

下面的代码在桌面Chrome上运行良好,但在iPhone5和8.3 iOS上的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 video元素的引用

任何帮助都将不胜感激

谢谢,非常感谢


Sa'ar

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

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

下面是一个polyfill,用于检查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错误可能会有所帮助。

你能检查IOS上是否有
窗口。AudioContext
窗口。webkitAudioContext
加载了?Safari使用window.webkitAudioContext谢谢,我知道这一点,但他正在寻找跨浏览器兼容性,所以这两个都应该得到Hnx的支持。更新了问题,因为只有iOS与我有关。