Je souhaite transmettre les images vidéo d'un Android Serveur (Galaxy S 4.4.4) vers un Android Client (Elephone P6000 4.4.4) sur le port 8002 qui est en écoute.
Mais je n'ai pas d'erreur, mais pas de vidéo non plus. le port d'écoute est ouvert 8002, lorsque je fais un échange de messages (dataOutputStream, dataInputStream) ça fonctionne. L'Android Client fonctionne avec une vidéo issue de Youtube. Les images de la camera de l'Android Serveur apparaissent uniquement sur L'Android Serveur (videoView) si je mets un port fermé exemple 50.
Si quelqu'un a une idée... là je suis perdu.
Merci
Le MainActivity du serveur
publicclass MainActivity extends ActionBarActivity implements SurfaceHolder.Callback {
SurfaceHolder surfaceHolder;
Socket socket = null;
@Override
protectedvoid onCreate(Bundle savedInstanceState){super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
this.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT); // Force screen orientation landscape
StrictMode.setThreadPolicy(new StrictMode.ThreadPolicy.Builder().detectDiskReads().detectDiskWrites().detectNetwork().penaltyLog().build());
ServerSocket s = null;
// Bout le code qui affiche la camera sur l'Android serveur
FrameLayout preview = (FrameLayout) findViewById(R.id.preview);
Camera cameraObject = ShowMyCamera.isCameraAvailiable(Camera.CameraInfo.CAMERA_FACING_BACK);
ShowMyCamera myCameraRun = new ShowMyCamera(this, cameraObject);
preview.addView(myCameraRun);
surfaceHolder = myCameraRun.getHolder();
surfaceHolder.addCallback(this);
// Bout de code qui diffuse la videotry{
s = new ServerSocket(8002);
socket = s.accept();
ParcelFileDescriptor pfd = ParcelFileDescriptor.fromSocket(socket);
MediaRecorder recorder = new MediaRecorder();
cameraObject.unlock();
recorder.setCamera(cameraObject);
recorder.setAudioSource(MediaRecorder.AudioSource.MIC);
recorder.setVideoSource(MediaRecorder.VideoSource.DEFAULT);
recorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);
recorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);
recorder.setVideoEncoder(MediaRecorder.VideoEncoder.MPEG_4_SP);
recorder.setVideoFrameRate(20);
recorder.setPreviewDisplay(surfaceHolder.getSurface());
recorder.setOutputFile(pfd.getFileDescriptor());
recorder.prepare();
recorder.start();
}catch(IOException e){
e.printStackTrace();
}}// end onCreate
publicclass ShowMyCamera extends SurfaceView implements SurfaceHolder.Callback {private SurfaceHolder sufaceHolder;
private Camera cameraUse;
private String TAG = "ShowMyCamera : ";
publicstatic Camera isCameraAvailiable(int cameraFacing){
Camera cameraAvailable = null;
Camera.CameraInfo cameraInfo = new Camera.CameraInfo();
for(int cameraId = 0; cameraId < Camera.getNumberOfCameras(); cameraId++ ){
Camera.getCameraInfo(cameraId, cameraInfo);
if(cameraInfo.facing == cameraFacing){try{
cameraAvailable = Camera.open(cameraId);
}catch(Exception e){}}}return cameraAvailable;
}public ShowMyCamera(Context context, Camera camera){super(context);
cameraUse = camera;
sufaceHolder = getHolder();
sufaceHolder.addCallback(this);
}
@Override
publicvoid surfaceChanged(SurfaceHolder arg0, int arg1, int arg2, int arg3){if(sufaceHolder.getSurface() == null){// preview surface does not existreturn;
}// stop preview before making changestry{
cameraUse.stopPreview();
}catch(Exception e){// ignore: tried to stop a non-existent preview}// make any resize, rotate or reformatting changes hereif(this.getResources().getConfiguration().orientation != Configuration.ORIENTATION_LANDSCAPE){
cameraUse.setDisplayOrientation(90);
}else{
cameraUse.setDisplayOrientation(0);
}// start preview with new settingstry{
cameraUse.setPreviewDisplay(sufaceHolder);
cameraUse.startPreview();
}catch(Exception e){
Log.d(TAG, "Error display orientation camera preview: " + e.getMessage());
cameraUse.release();
cameraUse = null;
}}
@Override
publicvoid surfaceCreated(SurfaceHolder sufaceHolder){if(this.getResources().getConfiguration().orientation != Configuration.ORIENTATION_LANDSCAPE){
cameraUse.setDisplayOrientation(90);
}else{
cameraUse.setDisplayOrientation(0);
}try{
cameraUse.setPreviewDisplay(sufaceHolder);
cameraUse.startPreview();
}catch(IOException e){
Log.d(TAG, "Error creating camera preview: " + e.getMessage());
cameraUse.release();
cameraUse = null;
}}
- Edité par ailgorbot 1 avril 2015 à 9:49:43
Webcam IP : Streaming Video Android vers Android
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.