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 :
Je me suis fortement inspiré de cette discussion : https://www.developpez.net/forums/d1...ideo-d-webcam/
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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(); } } }); } });
Quelqu'un peut-il m’indiquer pourquoi cela ne marche pas ?
Merci d'avance,
Partager