Cordova - 在Android上控制几种声音

时间:2015-01-03 12:37:33

标签: javascript android cordova audio media

我设法在Android(Cordova 4.1)上播放几种声音,但现在我想动态更改每个视频的音量。

我的播放声音代码如下:

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));
  }
}

然后我想从media1.volume = 0.5;函数之外用onDeviceReady之类的东西来控制音量,但我不能让它工作......

知道我缺少什么吗?

1 个答案:

答案 0 :(得分: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);

}