Android Media.release()在cordova';s媒体插件

Android Media.release()在cordova';s媒体插件,android,cordova,media,Android,Cordova,Media,Media.release()是如何工作的。查看文档时,您会觉得必须这样使用它: MediaService.loadMedia('sounds/connection-error.wav').then(function(media){ media.play(); media.release(); }); 但我在谷歌上搜索到了足够多的信息,知道这是错误的。我们必须在Android上明确发布核心实例 但如何做到这一点呢?如果我的应用程序中有8个视图,并且我在每个视图上播放一个声音文件

Media.release()是如何工作的。查看文档时,您会觉得必须这样使用它:

MediaService.loadMedia('sounds/connection-error.wav').then(function(media){
    media.play();
    media.release();
});
但我在谷歌上搜索到了足够多的信息,知道这是错误的。我们必须在Android上明确发布核心实例

但如何做到这一点呢?如果我的应用程序中有8个视图,并且我在每个视图上播放一个声音文件,那么这是否算作使用了8个核心实例?我能回到视图1并再次播放与该视图相关的声音吗?如果是的话,这算是第9次吗


直接调用
media.release()

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

所以媒体播放完毕后,“onSuccess”会触发吗?这是正确的吗?从技术上讲,释放onSuccess处理程序中的资源是不必要的,您可以缓存资源并仅在应用程序暂停或退出时释放它们。(typeof Audio!=“undefined”)在phonegap中为我返回true,导致没有声音出来。可能需要另一种方式来查看您是否处于phonegap中。