[英]Live Video Stream between two Android Phones
我目前正在研究兩個Android Phone之間的視頻流。 我編寫了一個能夠將視頻錄制到sd文件中的應用程序(使用MediaRecorder); 然后我編寫了另一個應用程序,該應用程序可以顯示文件的視頻。 兩種應用程序都能完美運行。
我在以下網站中找到了一個有關“使用Android廣播視頻-無需寫入本地文件”的網站。 這正是我想要做的。
我修改了我的代碼。
對於錄像機,它是:
socket=severSocket.accept();
ParcelFileDescriptor=pfd;
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(15);
recorder.setVideoSize(320, 240);
recorder.setPreviewDisplay(holder.getSurface());
pfd = ParcelFileDescriptor.fromSocket(socket);
recorder.setOutputFile(pfd.getFileDescriptor());
recorder.prepare();
recorder.start();
對於視頻播放器:
Socket socket = new Socket(IP,PORT);
mMediaPlayer = new MediaPlayer();
pfd = ParcelFileDescriptor.fromSocket(socket);
mMediaPlayer.setDataSource(pfd.getFileDescriptor()); // <-- here is the problem
mMediaPlayer.setDisplay(holder);
mMediaPlayer.prepare();
mMediaPlayer.setOnBufferingUpdateListener(this);
mMediaPlayer.setOnCompletionListener(this);
mMediaPlayer.setOnPreparedListener(this);
mMediaPlayer.setOnVideoSizeChangedListener(this);
mMediaPlayer.start();
對mMediaPlayer.setDataSource(pfd.getFileDescriptor());
程序迷戀mMediaPlayer.setDataSource(pfd.getFileDescriptor());
在MediaPlayer上,我知道我沒有正確設置數據源。 要將ParcelFileDescriptor放入MediaPlayer,必須有其他設置。
有誰知道如何為媒體播放器使用ParcelFileDescriptor ? 任何有幫助的建議或技巧都將很好......
謝謝
將
在視頻播放端,您必須創建一個歡迎套接字
ServerSocket welcomeSocket = new ServerSocket(portNumber);
socket soc = welcomeSocket.accept();
和使用
mMediaplayer.prepareAsync();
代替
mMediaplayer.prepare();
Android本身不支持Android 2.1或更低版本中的視頻流。 我們要做的是逐幀獲取圖像。 然后將每個火焰分解為BYTE []並使用Socket
類進行發送。 在接收方,我們使用接收到的BYTE[]
數據重建圖像。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.