[Android] - Flux camera sur VideoView
Bonjour à tous,
Je tente de récupérer dans mon application Android, le flux vidéo de mes caméras connecté sur le réseau.
Je rencontre des difficultés pour réaliser cette opération.
Si je tape dans le navigateur web de mon pc connecté au réseau :
http://XXX.XXX.X.XX/video/mjpg.cgi
ou encore
http://XXX.XXX.X.XX/video2.mjpg
J'obtiens bien la vidéo en direct de la caméra dont l'IP correspond au XXX.XXX.X.XX
En revanche en executant mon code android j'obtiens dans le log :
E/MediaPlayer: Error (1,-1005)
-1005 = ERROR_CONNECTION_LOST = MEDIA_ERROR_BASE - 5, // -1005, d'après les infos que j'ai pu trouver.
Code Android :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84
| package com.evo.evodomo.Autres;
import android.Manifest;
import android.app.ProgressDialog;
import android.content.Intent;
import android.content.pm.PackageManager;
import android.media.MediaPlayer;
import android.os.Bundle;
import android.support.v4.app.ActivityCompat;
import android.support.v4.content.ContextCompat;
import android.support.v7.app.AppCompatActivity;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.MediaController;
import android.app.ProgressDialog;
import android.widget.Switch;
import android.widget.Toast;
import android.widget.VideoView;
import android.net.Uri;
import com.evo.evodomo.R;
import com.evo.evodomo.controleur.Controle;
public class camera extends AppCompatActivity
{
String VideoURL_Cam1WifiON = "http://XXX.XXX.X.XX/video/mjpg.cgi"; //Dans le code les X sont remplacés par l'IP.
String VideoURL_Cam1WifiOFF = "YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY";
int WifiState = 1;
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.camera);
final Switch CamSwitch = (Switch) findViewById(R.id.switch1);
Boolean switchState = CamSwitch.isChecked();
Button BoutonConfirmer = (Button) findViewById(R.id.button1);
final VideoView Fluxvideo = (VideoView) findViewById(R.id.fluxcam1);
try
{
if(WifiState == 0) {
Uri video = Uri.parse(VideoURL_Cam1WifiOFF);
Fluxvideo.setVideoURI(video);
}
else
{
Uri video = Uri.parse(VideoURL_Cam1WifiON);
Fluxvideo.setVideoURI(video);
}
}
catch(Exception e)
{
Log.d("Erreur FLUXVIDEO", "**********" + e.toString());
}
Fluxvideo.requestFocus();
Fluxvideo.setOnPreparedListener(new MediaPlayer.OnPreparedListener()
{
@Override
public void onPrepared(MediaPlayer mp)
{
mp.setOnBufferingUpdateListener(new MediaPlayer.OnBufferingUpdateListener()
{
@Override
public void onBufferingUpdate(MediaPlayer mp, int percent)
{
if (percent == 100)
{
Fluxvideo.start();
}
}
});
}
}); |
Je me suis fortement inspiré de cette discussion : https://www.developpez.net/forums/d1...ideo-d-webcam/
Quelqu'un peut-il m’indiquer pourquoi cela ne marche pas ?
Merci d'avance,