私は現在、2 つの 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();
MediaPlayerでプログラムがクラッシュしmMediaPlayer.setDataSource(pfd.getFileDescriptor());
ます。DataSource を正しくセットアップしていないことはわかっています。ParcelFileDescriptorを MediaPlayer に配置するには、追加の設定が必要です。
MediaPlayer にParcelFileDescriptorを使用する方法を知っている人はいますか? 役立つアドバイスやヒントがあればいいのですが......
ありがとうございました
意思