Registra video

Nota:questa pagina fa riferimento alla classe Camera, che è stata ritirata. Ti consigliamo di utilizzare CameraX o, per casi d'uso specifici, Camera2. Sia CameraX sia Camera2 supportano Android 5.0 (livello API 21) e versioni successive.

Questa lezione spiega come acquisire video utilizzando le applicazioni per fotocamere esistenti.

La tua applicazione ha un compito da svolgere e l'integrazione dei video è solo una piccola parte. Vuoi registrare video senza problemi e non reinventare la videocamera. Fortunatamente, la maggior parte dei dispositivi Android è già dotata di un'applicazione della fotocamera che consente di registrare video. In questa lezione imparerai a farlo.

Consulta le seguenti risorse correlate:

Richiedere la funzionalità della fotocamera

Per pubblicizzare il fatto che la tua applicazione richiede una videocamera, inserisci un tag <uses-feature> nel file manifest:

<manifest ... >
    <uses-feature android:name="android.hardware.camera"
                  android:required="true" />
    ...
</manifest>

Se la tua applicazione utilizza, ma non richiede una fotocamera per funzionare, imposta android:required su false. In questo modo, Google Play consentirà ai dispositivi senza fotocamera di scaricare la tua applicazione. È quindi tua responsabilità verificare la disponibilità della videocamera in fase di esecuzione chiamando hasSystemFeature(PackageManager.FEATURE_CAMERA). Se non è disponibile una videocamera, devi disattivare le funzionalità della videocamera.

Guarda il video

L'applicazione Fotocamera di Android restituisce il video nell'Intent inviato a onActivityResult() come Uri che rimanda alla posizione del video nell'archiviazione. Il codice seguente recupera questo video e lo mostra in un VideoView.

Kotlin

override fun onActivityResult(requestCode: Int, resultCode: Int, intent: Intent) {
    if (requestCode == REQUEST_VIDEO_CAPTURE && resultCode == RESULT_OK) {
        val videoUri: Uri = intent.data
        videoView.setVideoURI(videoUri)
    }
}

Java

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent intent) {
    if (requestCode == REQUEST_VIDEO_CAPTURE && resultCode == RESULT_OK) {
        Uri videoUri = intent.getData();
        videoView.setVideoURI(videoUri);
    }
}