2013-03-22 4 views
14

Come limitare la registrazione quando si utilizzano gli intent? Ho provato questo codice:Registrazione tempo limite Android utilizzando l'intento

Intent intent = new Intent(MediaStore.ACTION_VIDEO_CAPTURE); 
intent.putExtra("android.intent.extra.durationLimit",5);  
startActivityForResult(intent,RQS_RECORDING); 

Questa parte del codice funziona bene quando mi registrare video. Il tempo è il conto alla rovescia da 5 a 0 e dopo 5 secondi la registrazione si interrompe automaticamente. Ma questo tempo limitato non funziona quando registro il suono. Perché ?

Intent intent = new Intent(MediaStore.Audio.Media.RECORD_SOUND_ACTION); 
intent.putExtra("android.intent.extra.durationLimit", 5); 
startActivityForResult(intent, RQS_RECORDING); 

Perché questo limite di tempo di 5 secondi non funziona quando si registra l'audio?

+0

Hai preso? –

+0

Ho paura di non avere una risposta. Sembra che la solluzione non esista :-) – mira

risposta

1

si dovrebbe provare con MediaRecorder mRecorder = new MediaRecorder(); e mRecorder.setMaxDuration (5000) // 5 secondi;

0
intent.putExtra(MediaStore.EXTRA_DURATION_LIMIT, 60); 
+0

MediaStore.EXTRA_DURATION_LIMIT è esattamente la stessa cosa di "android.intent.extra.durationLimit" – rcorbellini

7

Ho un problema simile e ho risolto il mio problema usando sotto frammento di codice:

Intent cameraIntent = new Intent(android.provider.MediaStore.ACTION_VIDEO_CAPTURE); 
cameraIntent.putExtra(MediaStore.EXTRA_DURATION_LIMIT, 5); 
startActivityForResult(this, cameraIntent,CAMERA_PIC_REQUEST); 

dove CAMERA_PIC_REQUEST è il mio tipo int come:

private static final int CAMERA_PIC_REQUEST = 1337; 
+0

Grazie! 'cameraIntent.putExtra (MediaStore.EXTRA_DURATION_LIMIT, 5);' totalmente funzionante per me. :) Anche se ho cambiato il numero a 60, per 60 secondi. – Azurespot

1
private void recordVideo() { 
Intent intent = new Intent(MediaStore.ACTION_VIDEO_CAPTURE); 
fileUri = getOutputMediaFileUri(MEDIA_TYPE_VIDEO); 

// set video quality 
intent.putExtra(MediaStore.EXTRA_VIDEO_QUALITY, 1); 
intent.putExtra(MediaStore.EXTRA_DURATION_LIMIT, 30); 

intent.putExtra(MediaStore.EXTRA_OUTPUT, fileUri); // set Video file 
startActivityForResult(intent, CAMERA_CAPTURE_VIDEO_REQUEST_CODE); 
} 

fileURI è la vostra percorso del file. Prova questo.