我正在使用android录音机api。如何获取录制的剪辑的持续时间。
有内置方法吗?我只看到setmaxtime()
; ?
答案 0 :(得分:0)
setmaxtime()实际上不是方法。 setMaxDuration()它实际上设置了记录的时间。如果你设置 setMaxDuration(-1),它将被记录,直到您停止或直到您的SD卡未完成。 如果设置setMaxDuration(10 * 1000)(即milisec),则意味着它将在10秒后自动停止。
答案 1 :(得分:0)
只需将此方法作为静态放入Utils类中,然后传递录制文件的文件路径。
注意:这里您将获得持续时间(以毫秒为单位)。
Android提供名为MediaMetadataRetriever的类来获取任何文件类型的所有细节,如大小,宽度,高度,持续时间,编解码器格式等。
`
public static long getAudioDurationByFilePath(String aFilePath){
long mMilliSeconds=0;
try{
MediaMetadataRetriever lMediaMetaDataRetriever = new MediaMetadataRetriever();
lMediaMetaDataRetriever.setDataSource(aFilePath);
String lDurationString = lMediaMetaDataRetriever.extractMetadata(
MediaMetadataRetriever.METADATA_KEY_DURATION);
mMilliSeconds = Long.parseLong(lDurationString);
}catch(Exception e){
Log.w("AudioUtils","SetDataSource ON NULL OBJECT REFERENCE");
e.printStackTrace();
}
Log.w("AudioUtils","returning duration: "+mMilliSeconds);
return mMilliSeconds;
}
`