如何获取媒体播放器持续时间并停止 Chronometer?

Posted

技术标签:

【中文标题】如何获取媒体播放器持续时间并停止 Chronometer?【英文标题】:How I can get medial player Duration and stop Chronometer? 【发布时间】:2016-09-13 12:58:30 【问题描述】:

我正在制作一个 android 简单的媒体播放器,用于播放音频文件并遇到问题。

我想停止 Chronometer 和媒体播放器

当当前播放文件的时长==文件总时长时..?

这是我的演示代码。

   private void playAudio() 
            mediaPlayer = new MediaPlayer();
            try 
                mediaPlayer.setDataSource(outputFile);
             catch (IOException e) 
                e.printStackTrace();
            
            try 
                mediaPlayer.prepare();
             catch (IOException e) 
                e.printStackTrace();
            
            mChronometer.setBase(SystemClock.elapsedRealtime());
            mChronometer.start();
            mediaPlayer.start();
            long totalDuration = mediaPlayer.getDuration();

            Log.i("MediaPlayer", String.valueOf(totalDuration));
        

这是从 answer 添加的另一个代码。 我添加了listrner mediaPlayer.setOnCompletionListener(CompletionListener);

 MediaPlayer.OnCompletionListener CompletionListener = new MediaPlayer.OnCompletionListener() 
        @Override
        public void onCompletion(MediaPlayer mp) 

            long totalDuration = mp.getDuration();


        
    ;

【问题讨论】:

【参考方案1】:

使用onCompletionListener 检查媒体播放器何时到达媒体文件的末尾。

    mPlayer.setOnCompletionListener(new MediaPlayer.OnCompletionListener() 
    public void onCompletion(MediaPlayer mp) 
         // do your task
    
);

更多参考请看此链接

Media Player

【讨论】:

你能解释更多...吗?根据我的示例,我可以在 onCompletion 上做什么...? 好吧completionListener方法将被称为当前播放文件的持续时间==文件的总持续时间。因此,在这种方法中,您可以编写您想要在该条件下执行的代码 我不明白你的意思,兄弟,如果可以的话,我会更新我的代码,写一些代码示例 是的,对不起,我明白了 您不需要在 onCompletion 方法中获取持续时间。你只需要把你的计时器停在里面

以上是关于如何获取媒体播放器持续时间并停止 Chronometer?的主要内容,如果未能解决你的问题,请参考以下文章

在 React Native 博览会中构建媒体播放器并获取歌曲的持续时间

如何在 html5 视频播放器中获取视频的持续时间..?

YouTube嵌入式播放器获取如何停止视频?

Android媒体播放器没有完全寻求进展

获取媒体文件持续时间的最快方法是啥?

phoneGap/Apache Cordova 媒体捕获插件 - 多视频录制