Aller au contenu

Problème de VideoRecording


ToTo81

Recommended Posts

Salut,

Je bosse actuellement sur une application permettant d'enregistrer des vidéos.

Tout allait bien jusqu'à ce je passe sous GingerBread (2.3.3).

Depuis lorsque je démarre l'enregistrement, la vue se freeze sur la première image ... et m'indique :

Echec de la lecture de la vidéo

Désolé. impossible de lire cette vidéo.

Le fichier est tout de même crée dans le répertoire prévu sur la carte SD.

Voici le code épuré :

public class EcranMenu extends Activity
{

MapView mapView;
Button recVideo;

/**
 * Appelée à la création de l'activité
 * @param savedInstanceState
 * @return void
 */
   @Override
   public void onCreate(Bundle savedInstanceState)
   {
   	super.onCreate(savedInstanceState);


       //Récupère la layout contenu dans le fichier de ressource
       setContentView(R.layout.ecranmenu);
       this.setTitle(Outils.titlebar);
       recVideo = (Button) findViewById(R.id.btn3);

       //Ouverture / Création de la BDD
       AccesBDD.ouvrirOuCreerBDD(EcranMenu.this);
	AccesBDD.creerTables();


       recVideo.setOnClickListener(
					        		new View.OnClickListener()
							        {
					        			public void onClick(View view)
							            {
					        				Intent intent = new Intent("android.media.action.VIDEO_CAPTURE");

					           				File out = new File(Outils.pathMedia, "video.mp4");
						        			Uri uri = Uri.fromFile(out);
						        			intent.putExtra(MediaStore.EXTRA_OUTPUT, uri);
					        				startActivityForResult(intent, Outils.VIDEO_CAPTURE);
							            }
							        }
				        		);
	}

@Override
public void onActivityResult(int requestCode, int resultCode, Intent data)
{
	super.onActivityResult(requestCode, resultCode, data);

	Intent myIntent;
	Bundle bundle = new Bundle();

	switch (resultCode)
	{
		case Activity.RESULT_OK:
			File avant, apres;

			//Date / Heure du retour
        	final Date now = new Date();
        	final SimpleDateFormat formatFilename = new SimpleDateFormat("yyyy-MM-dd HH.mm.ss");

			switch (requestCode)
			{

				case Outils.VIDEO_CAPTURE:
					//Renomme le fichier avec la date de la prise de vue
					avant = new File(Outils.pathMedia, "video.mp4");
					apres = new File(Outils.pathMedia, formatFilename.format(now) + ".mp4");
					avant.renameTo(apres);

					//Ajout de la photo dans la BdD
					AccesBDD.insererMedia(Outils.pathMedia + formatFilename.format(now) + ".mp4", "", "");

					//Ouvre la vidéo qui vient d'être prise
	                myIntent = new Intent(this, EcranVideo.class);
	                bundle = new Bundle();
					bundle.putString("VIDEO", apres.getAbsolutePath());
					myIntent.putExtras(bundle);
					Outils.nextTitle(getString(R.string.events));
					startActivity(myIntent);

					Outils.imagelist.add(0, apres);
					//Outils.imagelist.clear();
					Outils.indexCourant = 0;

					break;


				default :
					break;
			}
			break;
		case Activity.RESULT_CANCELED:
			File f;
			switch (requestCode)
			{
				case Outils.VIDEO_CAPTURE:
					Toast.makeText(this, getString(R.string.echecvideo), Toast.LENGTH_LONG).show();
					f = new File(Outils.pathMedia + "video.mp4");
					if (f != null && f.exists())
						f.delete();
					break;

				default :
					break;
			}
			break;
		default :
			break;
	}
}

   @Override
   protected void onResume()
   {
       super.onResume();
   }

@Override
   public void onDestroy()
   {
	AccesBDD.fermerBDD();
	super.onDestroy();
   }
}

Ce que je comprend pas, c'est que ça marchait sous la version 2.2, et comme Android fait en sorte que ses versions soient ascendantes au niveau de la compatibilité, si ça marche sous 2.2 ça devrait marcher sous 2.3.3 ... (ou pas ?)

Merci pour votre aide

Pour les log :

http://www.toofiles.com/fr/oip/documents/txt/log.html

++

PS : Dites si quelqu'un s'est penché / se penche encore sur le problème^^

Lien vers le commentaire
Partager sur d’autres sites

Archivé

Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.

×
×
  • Créer...