2017-03-22 2 views
0

Cordova/Phonegap/Ionic에 오디오를 좌우로 패닝 할 수있는 라이브러리가 있습니까? 이상적으로, 나는 사운드 파일을 가지고 왼쪽 또는 오른쪽 헤드폰 채널에서 재생하고 싶지만 둘 다 재생하지는 않습니다.코드 오디오 (왼쪽/오른쪽 헤드폰에서만 재생)

나는 cordova-media-plugin, cordova-native-audio, cordovoa-audioToggle 및 soundJS/createJS를 보았습니다. 이 중에서 유일한 soundJS & createJS는 헤드폰 출력과 패닝을 제어 할 수있는 것처럼 보이지만 Cordova와는 작동하지 않는 것 같습니다. 또한 각도/코드 바에 대한 예가 없습니다.

답변

0

Android 6.0에서는 다음 스크립트가 작동합니다. 웹 오디오 API를 사용합니다. 아직 iOS에서 테스트하지는 않았지만 제대로 작동한다는 느낌이 들었습니다 (그렇지 않은 경우 의견을 말하십시오).

테스트하려면 루트 디렉토리에 "omg.mp3"파일이 있어야합니다. 또한 Cordova를 사용하여 빌드하고 브라우저에서 CORS 또는 동일 도메인 오류가 발생하지 않도록하십시오.

<!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>