Ionic/Cordova - 是不是有具有工作轨迹栏功能的媒体/媒体播放器插件?

Posted

技术标签:

【中文标题】Ionic/Cordova - 是不是有具有工作轨迹栏功能的媒体/媒体播放器插件?【英文标题】:Ionic/Cordova - Is there a media/mediaPlayer plugin with working track bar functionality?Ionic/Cordova - 是否有具有工作轨迹栏功能的媒体/媒体播放器插件? 【发布时间】:2016-03-29 11:50:58 【问题描述】:

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

另一方面,媒体插件的设计考虑到了这一点 - 但是,在 Ionic 上,正如 ngCordova 文档中所见,getCurrentPosition() 和 getDuration() 方法“还没有工作”。

还有其他选择吗?或者有没有人设法让它工作?

与此相关(可能)我刚刚找到了一个bug report,不确定它是否与播放/暂停/停止相同的问题对我来说在 iosandroid 上都可以正常工作 - 我的情况是 currentPosition和持续时间。

【问题讨论】:

【参考方案1】:

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

【讨论】:

【参考方案2】:

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

    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)

注意:每秒(1000 毫秒)我得到当前位置

【讨论】:

以上是关于Ionic/Cordova - 是不是有具有工作轨迹栏功能的媒体/媒体播放器插件?的主要内容,如果未能解决你的问题,请参考以下文章

Ionic Cordova构建android无法正常工作

Ionic 3/Cordova:应用程序通过 Ionic CLI 而不是通过 Xcode 运行(在 Xcode 中构建成功)

IONIC/Cordova 视频流

在 ionic serve 上工作的 Http 请求,但在“ionic cordova run android --device”上不起作用

ionic cordova 运行 android --prod 事件无法正常工作

ionic + cordova 插件和后台模式