簡體   English   中英

Android如何獲取音頻文件持續時間

[英]Android How to get Audio File duration

我制作了使用AudioRecorder類以pcm格式錄制文件的應用程序。 我在我的應用程序中列出了所有文件,我想從所有文件中獲取持續時間,但是我有問題。 我試過了:

MediaMetadataRetriever metaRetriever = new MediaMetadataRetriever();
   metaRetriever.setDataSource(filePath);

MediaPlayer mplayer =  new MediaPlayer();
mplayer.reset();
mplayer.setDataSource(URL);
mplayer.prepare();
Integer totalFileDuration = mplayer.getDuration();

我只有這個解決方案的錯誤。

從Android開發文檔:

在調用reset()之后,新構造的MediaPlayer對象與MediaPlayer對象之間存在細微但重要的區別。 調用諸如getCurrentPosition(),getDuration(),getVideoHeight(),getVideoWidth(),setAudioStreamType(int),setLooping(boolean),setVolume(float,float),pause(),start()之類的方法是編程錯誤,stop(),seekTo(int),prepare()或prepareAsync()都處於空閑狀態。 如果在構造MediaPlayer對象之后立即調用了這些方法中的任何一個,則內部播放器引擎將不會調用用戶提供的回調方法OnErrorListener.onError(),並且對象狀態保持不變。 但是如果在reset()之后立即調用了這些方法,則內部播放器引擎將調用用戶提供的回調方法OnErrorListener.onError(),並且該對象將轉移到Error狀態。

由於您使用的數據源的URL,我會嘗試prepareAsync()然后調用getDuration()onPrepared()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM