2015-01-03 2 views
0

Android (Cordova 4.1)에서 여러 사운드를 재생할 수 있지만 이제는 각 비디오의 볼륨을 동적으로 변경하고 싶습니다.Cordova - Android에서 여러 사운드 제어

연주 소리에 대한 나의 코드는 다음

function onDeviceReady() { 
    document.querySelector("#play").addEventListener("touchend", playMP3(), false); 

    function playMP3() { 
     var mp3_1 = getMediaURL("audio/sound1.mp3"); 
     var mp3_2 = getMediaURL("audio/sound2.mp3"); 
     media1 = new Media(mp3_1, null, mediaError); 
     media2 = new Media(mp3_2, null, mediaError); 
     media1.play(); 
     media2.play(); 
    } 

    function getMediaURL(s) { 
     if(device.platform.toLowerCase() === "android") return "/android_asset/www/" + s; 
     return s; 
    } 
    function mediaError(e) { 
     alert('Media Error'); 
     alert(JSON.stringify(e)); 
    } 
} 

그런 다음 나는 onDeviceReady 함수 외부에서 media1.volume = 0.5; 같은과 볼륨을 조절하고 싶지만 나는 그것이 작동 할 수 없습니다 ...

제가 누락 된 것에 대한 아이디어가 있습니까?

답변

0

마지막으로, 전체 패키지는 Cordova 4.1 및 Android 4.4로 사운드를 재생 및 제어하여 나를 위해 작동했습니다. 볼륨을 설정하려면 다음과 같은 함수를 호출하십시오. onclick=setVolume(media1, "0.5") 희망이 도움이 될 것입니다!

var media1 = null; 
var media2 = null; 

//set volume of one sound 
function setVolume(media, volume) { 
    if (media) { 
     media.setVolume(volume); 
    } 
} 

//play the 2 sounds at the same time 
function playMP3() { 
    var mp3_1 = getMediaURL("audio/media1.mp3"); 
    var mp3_2 = getMediaURL("audio/media2.mp3"); 
    media1 = new Media(mp3gauche, null, mediaError); 
    media2 = new Media(mp3droite, null, mediaError); 
    media1.play(); 
    media2.play(); 
} 

//for android devices (need the Device Cordova plugin) 
function getMediaURL(s) { 
    if(device.platform.toLowerCase() === "android") return "/android_asset/www/" + s; 
    return s; 
} 
//help to get log when errors occur 
function mediaError(e) { 
    alert('Media Error'); 
    alert(JSON.stringify(e)); 
} 

//launch the 2 sounds when the device is ready 
function onDeviceReady() { 
    document.querySelector("#playMp3").addEventListener("touchend", playMP3(), false); 

} 
관련 문제