Android аудио рекордер API - PullRequest
2 голосов
/ 25 марта 2012

Я использую Android-рекордер аудио API. Как узнать продолжительность клипа, который был записан.

Есть ли встроенный метод? Я вижу только setmaxtime();

Ответы [ 2 ]

0 голосов
/ 29 мая 2018

Просто поместите этот метод в свой класс 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;
    }

`

0 голосов
/ 25 марта 2012

setmaxtime () на самом деле не является методом.setMaxDuration () фактически устанавливает, сколько времени будет записано.если вы установите setMaxDuration (-1), он будет записываться до тех пор, пока вы не остановите или пока ваша SD-карта не будет завершена.если вы установите setMaxDuration (10 * 1000) (то есть milisec), это означает, что он автоматически остановится через 10 секунд.

...