Ionic/Cordova-是否有一个媒体/mediaPlayer插件可以使用轨迹栏功能

Ionic/Cordova - Is there a media/mediaPlayer plugin with working track bar functionality?

本文关键字:可以使 轨迹 功能 插件 mediaPlayer Cordova- 是否 有一个 媒体 Ionic      更新时间:2023-09-26

对开放式问题表示歉意-目前在实现带有轨迹栏的媒体播放器时遇到问题,该轨迹栏显示当前位置和曲目的持续时间。我已经尝试了cordovaNativeAudio和cordovaMedia插件;本地音频插件不是为交互式播放而设计的,并且没有允许检索持续时间或当前位置的方法。

另一方面,媒体插件的设计也考虑到了这一点——然而,正如在ngCordova文档中所看到的,在Ionic上,getCurrentPosition()和getDuration()方法"还不起作用"。

有其他选择吗?或者有人设法让它发挥作用了吗?

与此相关(可能),我刚刚发现了一份错误报告,不确定这是否与我在ios和android上玩/暂停/停止所有工作一样的问题-在我的情况下,障碍是currentPosition和duration。

您可以使用JW Player,它具有非常好的媒体跟踪API。它对android、ios和web应用程序都有很好的支持。我在web和ios应用程序中试用过,效果非常好。

通过使用下面的代码,我得到了音频文件的总持续时间和当前位置。通过代码:

    var my_media = new Media(audioFile);
    my_media.play();
    var counter = 0;
    var timerDur = setInterval(function() {
        counter = counter + 100;
        if (counter > 2000) {
          clearInterval(timerDur);
        }
        var duration = my_media.getDuration();
        console.log(duration);
        if (duration > 0) {
            clearInterval(timerDur);
            // duration is the total duration of audio file
            console.log(duration);          
        }           
    }, 100);
    setInterval(function(){
      my_media.getCurrentPosition(function(position){
        if(position > -1){
          // position is current position of audio which is playing
          console.log(position);
        }
      }, function(error){
        console.log(error);
      })
    }, 1000)

注意:每隔一秒(1000ms),我就会得到当前位置