【问题标题】:How to stop audio when it is playing in another player parallely in Cordova Media Plugin如何在 Cordova Media Plugin 中并行播放另一个播放器时停止音频
【发布时间】:2015-11-03 12:12:25
【问题描述】:

我的应用中有一个音频播放器,它是使用 Ionic 框架 Cordova Media Plugin 完成的。

我希望它在另一个应用播放器播放媒体时停止。

我希望一次只有一个音频播放器处于活动状态,有人知道如何做到这一点吗?

【问题讨论】:

  • 我的问题中的小文本更正。请关注此 cmets:我想在其他播放器播放媒体时停止。手机必须一次播放一个音频。怎么办?
  • 检查你的媒体对象的状态 if(self.media){ self.media.stop(); self.media.release(); /
  • 让问题更清晰。

标签: ionic-framework ionic html5-audio cordova-plugins android-audiomanager


【解决方案1】:

这对我有用,检查一下

 var filedirPath = $ionicPlatform.is('android') ?  '/android_asset/www/app/audio' : 'audio';

var fileName = filedirPath + "/BlossominyourSmile.mp3";
 var media = new Media(self.fileName, function(){
          console.log("Silence played succssfully");
          // self.resetPlay();
        }, function(err){
      });
 media.play({playAudioWhenScreenIsLocked : true, numberOfLoops: 0}); 

将使用一些默认方法创建媒体对象,例如 media.pause、media.resume、media.stop
检查状态,然后将方法用作

if(self.media){ self.media.stop(); self.media.release();}

【讨论】:

  • 感谢您的回复@Anil kumar。我应该知道cordova插件使用了什么吗?我已经尝试过上述方法。我希望每当我在我的应用程序中播放声音(歌曲)时,它应该自动停止后台播放器(音频服务),它应该开始从我的应用程序播放声音。
【解决方案2】:

我使用Ionic 2cordova-plugin-nativeaudio

我在constructor 中预加载了我需要的所有文件,例如单个文件

    platform.ready().then(() => {
            this.preloadTracks()
        });

        preloadTracks(list) {
          var path = this.keypadSounds.getAssetsPath();        
          list.forEach((el) => this.nativeAudio.preloadComplex(el, `${path}/${el}.mp3`, 1, 1, 0).then(
            () => {}, 
            (error) => {})
        );
    }

然后我可以阻止它 this.nativeAudio.stop(el); 任何我需要的地方

【讨论】:

    猜你喜欢
    • 2022-01-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多