2014-01-06 70 views
6

我試着去得到一個音樂的持續時間,在libgdxLibgdx獲得音樂

談到:

getPosition(); 

我要的是音樂的持續時間。 (單位:秒)

感謝

+0

getPosition()「以秒爲單位返回播放位置」。持續時間是什麼意思? – doomsdaymachine

+2

持續時間是音樂的最後時間:例如3分鐘30 – LeSam

+0

是的,我不認爲libgdx具有內置函數來簡單獲取該信息。 – doomsdaymachine

回答

7

要通過「持續時間」清楚你的意思是總時間的音樂將不循環播放。

我不認爲Libgdx聲音API揭示了這一點(桌面,Android和Web上的最低公共聲音API是相當低的......)。儘管(例如,如果它們是wav或mp3文件,應該有API來查詢它們的持續時間),但您可能能夠從要加載到系統中的文件中獲取此信息。

+0

好吧,所以這是不可能的libgdx,我會搜索做與另一個庫 – LeSam

-2

如果烏拉圭回合希望停止音樂當u希望再使用

music.stop(); 

music.pause(); 

或執行其他任務暫停音樂參考此鏈接https://github.com/libgdx/libgdx/wiki/Streaming-music

+0

即時通訊尋找獲得音樂的最後時間,長度 – LeSam

+0

採取定時器nd使用函數調用 'boolean isPlaying = music.isPlaying( );' 繼續檢查它....當它返回假時獲得計時器計數,這是你的歌曲持續時間.... knw這不是確切的功能你問...但這適用於你的原因我希望... – srikanth

+0

不,它是如此糟糕!,它需要播放整個音樂才能獲得最後的時間,所以如果我的音樂是6分鐘,我不能等待那段時間,這是非常抱歉。 – LeSam

3

其一個老問題,但我會給我未來的訪客回答

要獲取音樂文件的持續時間,您可以使用gdx-audio擴展。

FileHandle file=Gdx.files.internal(filepath); 
    FileHandle external=Gdx.files.external("mygame/"+filepath); 
    if(!external.exists())file.copyTo(external); //copy the file to the external storage 
    Mpg123Decoder decoder = new Mpg123Decoder(external); 
    System.out.println("name:"+filepath+" duration:"+decoder.getLength()); 
+0

'Mpg123Decoder'現已被棄用。有其他方法嗎? – WeirdElfB0y