gpt4 book ai didi

java - media.getDuration().toSeconds() 在某些歌曲上返回 0

转载 作者:行者123 更新时间:2023-12-03 20:21:36 24 4
gpt4 key购买 nike

我写了下面这段代码

Media hit = new Media(dir); 
MediaPlayer player = new MediaPlayer(hit);
runMedia run = new runMedia(player);
Ui.changeGuiTitle("Now playing: "+getLastBitFromUrl(dirUnencoded.toString()));
Ui.updateInitialTime(getTime(hit.getDuration().toSeconds()));

获取时间方法:

System.out.println(time);
System.out.println(Math.round(time));
double seconds = Math.round(time);
double modulo = seconds % 60;
double hours = (seconds - modulo) / 3600;
double minutes = hours / 60;
String Time = "";

if (hours > 0.5)
{
Time = Math.round(hours) + " : " + Math.round(minutes) + " : "
+ Math.round(seconds);
}
else
{
Time = Math.round(minutes) + " : " + Math.round(seconds);
}
return Time;

它没有给出错误,但我的问题是有些歌曲在 .getDuration().toSeconds() 处返回 0,而其他歌曲完美返回它们的值美好的。是什么导致了这个问题?

编辑:在 Debug模式下,歌曲包含 136280.816326 毫秒,而 System.out.println(time) 返回 0

http://imgur.com/1oN0Vxk -- 调试和正常构建的区别

最佳答案

我也遇到过这个问题。创建媒体对象后,需要一些时间才能完全初始化(我的经验)。

您可以尝试在 MediaPlayer 的 onReady 或 onPlaying 方法中调用您的 getTime-Method。

关于java - media.getDuration().toSeconds() 在某些歌曲上返回 0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18573072/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com