Java 识别播放音频文件的运行时间
我正在开发一个简单的音频播放器,当我暂停/停止时,它会显示音频播放的时间(编辑:例如,如果我在52秒时重新启动音乐,然后在55秒时暂停,祝酒词会说“3”)。到目前为止,我使用的是:Java 识别播放音频文件的运行时间,java,android,audio,time,Java,Android,Audio,Time,我正在开发一个简单的音频播放器,当我暂停/停止时,它会显示音频播放的时间(编辑:例如,如果我在52秒时重新启动音乐,然后在55秒时暂停,祝酒词会说“3”)。到目前为止,我使用的是: long startTime = System.currentTimeMillis(); long stopTime = System.currentTimeMillis(); Toast.makeText(getApplicationContext(), "Elapsed time was " + ((stopTi
long startTime = System.currentTimeMillis();
long stopTime = System.currentTimeMillis();
Toast.makeText(getApplicationContext(), "Elapsed time was " + ((stopTime - startTime)/1000) + " seconds.", Toast.LENGTH_LONG).show();}
显示时间差。我遇到的问题是,开始时间是从我第一次玩游戏开始的,而不是最近的时间(只是不断累积)
首先将long startTime和stopTime置于onCreate()方法之上。现在,尝试在onPause()方法中添加以下代码行,并按如下方式更改代码:
public void pauseMusic(){
if (mediaPlayer !=null){
mediaPlayer.pause();
startTime=mediaPlayer.getCurrentPosition();
playMusic.setText(getString(R.string.button_start));
}
}
嗨,安卓极客,谢谢你的帮助。当我更改代码时,无论我播放歌曲的时间长短,它现在总是说“经过的时间是1490313723秒”。我确实更改了您的startTime=mp1。。。。到startTime=mediaPlayer。。。。因为mp1在我的代码中不是一个变量,而且(我认为,尽管我是新手),它应该是mediaPlayer。另外,如果我读对了,我把“long startTime=System.currentTimeMillis();”和“long stopTime=System.currentTimeMillis();”放在我上面代码中“private MediaPlayer MediaPlayer;”的正下方。好吧,我知道了我相信你有什么,就是用当前的歌曲位置作为祝酒词来庆祝它播放了多长时间。这是一个很好的解决方案。不幸的是,我认为我没有很好地表达我想要的东西。我想问一下开始/暂停之间的时间间隔(例如,如果我在一首歌中重新开始52秒,然后在55秒时暂停,祝酒词上写着“3”)。我希望这对你有帮助。我也做了同样的编辑。是的,谢谢你,我感谢你的编辑!你有什么想法,我可以做什么,让它显示在歌曲的开始/暂停之间多久?i、 e.如果我在歌曲开始52秒后重新开始,然后在55秒时暂停,它将发出“3”。按原样,代码是toast“55”您的意思是要在toast中打印55秒?
public void pauseMusic(){
if (mediaPlayer !=null){
mediaPlayer.pause();
startTime=mediaPlayer.getCurrentPosition();
playMusic.setText(getString(R.string.button_start));
}
}