我如何发布一个音轨而不是所有音频离子/ cordova cordova-plugin-media

时间:2016-01-12 18:52:33

标签: ios cordova audio

我正在使用cordova / ionic和cordova-plugin-media来交叉淡化两首音乐曲目。

我遇到了一个问题,即我正在将一个Media对象与另一个Media对象交叉淡入淡出。

它工作正常,但是当我在Android上完成的Media对象上调用.release()时,但在ios上,。release()会杀死所有音频。如果我不在ios中调用release,我最终会遇到“内存泄漏”。我说'内存泄漏',因为它不是真的 - 我知道那个对象仍在那里。

如果重置对象并将其置空,则无关紧要,根据xcode,内存占用量会逐渐变大。

我减少了loadTrack代码:

    var loadTrack = function(playerName,track){

        var pn = playerName;

        var mediaOnEnd = function(){
            console.log('mediaOnEnd RELEASING: '+pn);
            $scope.player.media[pn].release();
        };

        var mediaError = function(error){
            prepareNextTrack(pn);
        };

        var mediaStatus = function(status){
            switch(status){
                case 2:
                    console.log('playing:'+pn);
                    break;
                case 4:
                    console.log('stop:'+pn);
                    break;
            }
        };

        $scope.player.media[pn] = new $window.Media(
            config.local_path+$scope.currentTrack.id+config.file_extention,
            mediaOnEnd,
            mediaError,
            mediaStatus
        );

        $scope.player.media[pn].play();

    };

当调用mediaOnEnd时,或者当我在交叉渐变功能(不包括)中调用它时,所有音频都会停止。

我能在任何地方正确地做到这一点吗?

0 个答案:

没有答案