Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/191.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 识别播放音频文件的运行时间_Java_Android_Audio_Time - Fatal编程技术网

Java 识别播放音频文件的运行时间

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

我正在开发一个简单的音频播放器,当我暂停/停止时,它会显示音频播放的时间(编辑:例如,如果我在52秒时重新启动音乐,然后在55秒时暂停,祝酒词会说“3”)。到目前为止,我使用的是:

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));
    }
}