- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想在左声道、右声道或两个声道中播放振荡器,为此我使用来自 Web Audio Api 的 StereoPannerNode。
当我在 Chrome 上运行“ ionic 服务”时,一切正常,但是当我在 Android 上测试代码(我安装了人行横道插件)时,声音来自两个 channel ( channel 的下部我不想播放声音)。
我还尝试了 Merger 和 Splitter 节点,结果相同:适用于 Chrome,不适用于 Android。
我尝试将华硕 ZenFone 与 Android 4.4.2 和华为 p8 与 Android 6.0 一起使用。
这就是我创建音频上下文和 panner 节点的方式。
var contextClass = (window.AudioContext);
var audioCtx = new contextClass();
var panNode = audioCtx.createStereoPanner();
最佳答案
在 Android 6.0 上,以下脚本有效。它利用了 Web Audio API。我还没有在 iOS 上测试过它,但我感觉它可以在那里工作(如果没有,请发表评论)。
您需要在根目录中有一个“omg.mp3”文件进行测试。您还应该使用 Cordova 构建,而不必担心您可能在浏览器中遇到的 CORS 或 Same-domain 错误
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<meta name="viewport" content="width=device-width">
<title>StereoPannerNode example</title>
<link rel="stylesheet" href="">
<!--[if lt IE 9]>
<script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
<![endif]-->
</head>
<body>
<h1>StereoPannerNode example</h1>
<audio controls>
<source src="omg.mp3" type="audio/mp3">
<p>Browser too old to support HTML5 audio? How depressing!</p>
</audio>
<h2>Set stereo panning</h2>
<input class="panning-control" type="range" min="-1" max="1" step="0.1" value="0">
<span class="panning-value">0</span>
</body>
<script>
var audioCtx = new (window.AudioContext || window.webkitAudioContext)();
var myAudio = document.querySelector('audio');
var panControl = document.querySelector('.panning-control');
var panValue = document.querySelector('.panning-value');
// Create a MediaElementAudioSourceNode
// Feed the HTMLMediaElement into it
var source = audioCtx.createMediaElementSource(myAudio);
// Create a stereo panner
var panNode = audioCtx.createStereoPanner();
// Event handler function to increase panning to the right and left
// when the slider is moved
panControl.oninput = function() {
panNode.pan.value = panControl.value;
panValue.innerHTML = panControl.value;
}
// connect the AudioBufferSourceNode to the gainNode
// and the gainNode to the destination, so we can play the
// music and adjust the panning using the controls
source.connect(panNode);
panNode.connect(audioCtx.destination);
</script>
</html>
关于api - 使用 Web Audio Api、Ionic 和 Crosswalk 在左/右声道播放振荡器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41461447/
我想在我的 android 应用程序中播放 PCM 音频数据。网络上有很多示例,但仅用于单 channel ,我有 4 个 channel (如本问题标题所述)。 当我设置 AudioTrack au
我正在尝试通过 channelsplitter 将立体声音频路由到具有增益控制的 6 个 channel ,然后返回到 channelMerger,以控制 5.1 组的所有 6 个 channel .
我试图从 iPhone XS 的所谓立体声后置麦克风中获取两个 channel ,但在 AVAudioSession 的不同点上只能看到一个 channel 。和 AVAudioSessionPort
我是一名优秀的程序员,十分优秀!