【发布时间】:2011-03-13 06:00:26
【问题描述】:
我目前正在处理两部 Android 手机之间的视频流。 我编写了一个能够将视频录制到 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()); 的节目迷恋
我知道我没有正确设置数据源。 ParcelFileDescriptor 必须有额外的设置才能放入 MediaPlayer。
有谁知道如何将 ParcelFileDescriptor 用于 MediaPlayer? 任何有用的建议或提示都会很好......
谢谢
会
【问题讨论】:
-
你搞定了吗?
-
这对你有用吗?如果它工作正常,请告诉我如何解决这个问题。
-
我很想知道你是否也发现了这一点。我有完全相同的问题,下面的答案没有帮助
标签: android sockets media-player android-videoview