在cordova的媒体插件中的Media.release()

时间:2014-08-31 08:39:05

标签: android cordova media

Media.release()如何运作。看看文档,你觉得你必须像这样使用它:

MediaService.loadMedia('sounds/connection-error.wav').then(function(media){
    media.play();
    media.release();
});

但我用Google搜索知道这是错误的。我们必须在Android上明确发布核心实例。

但是怎么做?如果我在我的应用程序中有8个视图,并且如果我在每个视图上播放声音文件,那么是否会被视为正在使用的8个核心实例?我可以回去说1号视图并再次播放与该视图相关的声音吗?如果是这样,那会算作第9个实例吗?

如上所述直接呼叫media.release()根本不会发出任何声音。

1 个答案:

答案 0 :(得分:1)

使用Cordova Media插件播放声音的最常用方法如下:

function playAudio(src) {
    // HTML5 Audio
    if (typeof Audio != "undefined") { 
        new Audio(src).play() ;

    // Phonegap media
    } else if (typeof device != "undefined") {

        // Android needs the search path explicitly specified
        if (device.platform == 'Android') {
            src = '/android_asset/www/' + src;
        }

        var mediaRes = new Media(src,
            function onSuccess() {
               // release the media resource once finished playing
               mediaRes.release();
            },
            function onError(e){
                console.log("error playing sound: " + JSON.stringify(e));
            });
         mediaRes.play();
   } else {
       console.log("no sound API to play: " + src);
   }
}