1

J'essaie d'enregistrer une vidéo dans Android en utilisant l'intention MediaStore.ACTION_VIDEO_CAPTURE. Je peux enregistrer la vidéo dans l'album de la bibliothèque par défaut, mais je ne peux pas stocker ailleurs. J'ai essayé d'utiliser le paramètre intention EXTRA_MEDIA_ALBUM:Spécifier l'album d'une vidéo enregistrée dans Android

Intent intent = new Intent(MediaStore.ACTION_VIDEO_CAPTURE); 
intent.putExtra(MediaStore.EXTRA_MEDIA_ALBUM, "My app videos"); 
intent.putExtra(MediaStore.EXTRA_VIDEO_QUALITY, 1); 
startActivityForResult(intent, 0); 

J'ai aussi essayé d'insérer la ligne vidéo dans la MediaStore avant que la vidéo elle-même.

ContentValues videoValues = new ContentValues(); 
videoValues.put(MediaStore.Video.Media.TITLE, "My app video at" + System.currentTimeMillis()); 
videoValues.put(MediaStore.Video.Media.ALBUM, "My app videos"); 
Uri videoUri= getContentResolver().insert(MediaStore.Video.Media.EXTERNAL_CONTENT_URI, videoValues); 

Intent intent = new Intent(MediaStore.ACTION_VIDEO_CAPTURE); 
intent.putExtra(MediaStore.EXTRA_OUTPUT, videoUri); 
intent.putExtra(MediaStore.EXTRA_VIDEO_QUALITY, 1); 
startActivityForResult(intent, 0); 

Et j'ai aussi essayé de modifier les métadonnées une fois que la vidéo est insérée, pour voir si elle est dans un album différent une fois que j'ouvre l'application de la galerie.

protected void onActivityResult(final int requestCode, final int resultCode, final Intent dataIntent) { 
    ... 
    Uri contentUri = dataIntent.getData(); 
    ContentValues values = new ContentValues(); 
    values.put(MediaStore.Video.Media.ALBUM, "My app videos"); 
    int result = getContentResolver().update(contentUri, values, null, null); 

« résultat » est 1, donc la valeur de la ligne est réellement changé, mais pas dans l'album « Mes vidéos app » une fois que je l'ouvre.

J'ai également essayé différentes solutions expliquées dans le Android documentation mais avec n'importe quelle exception Uri et IllegalArgumentException (fichier URL inconnu). Il me manque une méthode pratique comme MediaStore.Images.Media.insertImage

Comment avez-vous traité ce problème?

+0

est-il nécessaire d'utiliser l'intention d'enregistrer des vidéos pour vous? ne devriez-vous pas utiliser MediaRecorder? – Abhi

+0

Je souhaite conserver les informations vidéo dans le MediaStore et utiliser l'application de caméra native, utilisez donc MediaRecorder comme dernière option. Il «travaille presque» avec MediaStore.ACTION_VIDEO_CAPTURE, et j'ai juste besoin de spécifier un album concret pour mon application. Cela devrait être un moyen de le faire, car certaines applications comme LiveProfile le font. –

+0

il est possible de stocker la vidéo enregistrée dans la carte SD en utilisant MediaRecorder – Abhi

Répondre

Questions connexes