Android录音机api

时间:2012-03-25 13:13:58

标签: android audio-recording

我正在使用android录音机api。如何获取录制的剪辑的持续时间。

有内置方法吗?我只看到setmaxtime(); ?

2 个答案:

答案 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;
    }

`