Pergunta sobre android – Como obter Duração do vídeo capturado no android?

3

Usando o código abaixo eu capturei vídeo, mas como obter a duração do vídeo capturado no android? e também quando, às vezes, o usuário descarta o vídeo e grava um novo vídeo e obtém a duração do novo vídeo.

Intent cameraIntent = new Intent(
android.provider.MediaStore.ACTION_VIDEO_CAPTURE);
startActivityForResult(cameraIntent, TAKE_VIDEO);
Duplicar possível:stackoverflow.com/q/3936396/1012284 Padma Kumar
@PadmaKumar não é duplicado, há apenas Cursor e também não duração Samir Mangroliya

Sua resposta

2   a resposta
7

Usando o cursor você pode obter a duração e existemduration Coluna no cursor e você pode obter como uma seqüência de caracteres.

Cursor cursor = MediaStore.Video.query(getContentResolver(),data.getData(),
                new String[] { MediaStore.Video.VideoColumns.DURATION });
System.out.println(">>>>>>>>>>"+cursor.getCount());
cursor.moveToFirst();

String duration = cursor.getString(cursor.getColumnIndex("duration"));
1) Acima sugerido está trabalhando para obter duração do vídeo gravado. 2) Mas quando eu tentei recuperar a duração do vídeo selecionado galeria está jogando IllegalArgumentException. Harish
7

Eu acho que a maneira mais fácil é:

MediaPlayer mp = MediaPlayer.create(this, Uri.parse(uriOfFile);
int duration = mp.getDuration();
mp.release();
/*convert millis to appropriate time*/
return String.format("%d min, %d sec", 
        TimeUnit.MILLISECONDS.toMinutes(duration),
        TimeUnit.MILLISECONDS.toSeconds(duration) - 
        TimeUnit.MINUTES.toSeconds(TimeUnit.MILLISECONDS.toMinutes(duration))
    );
Por favor, não crie uma instância do MediaPlayer apenas para obter o tamanho do arquivo. Há uma classe dedicada MediaMetadataRetriever no android para isso. Mais detalhes estão disponíveis na seguinte resposta: stackoverflow.com/a/33247728/1713920 vir us
Por uriOfFile, você quer dizer o caminho do arquivo anexado comfile:// prefixo? Salman Khakwani

Perguntas relacionadas