mediarecorder.prepare上的IllegalStateException

时间:2015-02-26 10:32:58

标签: android video-streaming illegalstateexception android-mediarecorder

我正在尝试通过套接字传输视频。

以下是代码段 -

    serverSocket = new ServerSocket(serverPort);
    receiverSocket = new Socket();
    receiverSocket.connect(new InetSocketAddress(serverIP, serverPort));
  //  receiverSocket.setReceiveBufferSize(500000);
    receiverSocket.setSoTimeout(3000);
    senderSocket = serverSocket.accept();
   // senderSocket.setReceiveBufferSize(500000);
    ParcelFileDescriptor pfd = ParcelFileDescriptor.fromSocket(senderSocket);
    FileDescriptor fd = pfd.getFileDescriptor();
    mMediaRecorder.setOutputFile(fd);
  //  mMediaRecorder.setOutputFile(filePath);
    mMediaRecorder.setVideoEncodingBitRate(10000000);
    mMediaRecorder.setVideoFrameRate(30);
    mMediaRecorder.setVideoSize(mVideoSize.getWidth(), mVideoSize.getHeight());
    mMediaRecorder.setVideoEncoder(MediaRecorder.VideoEncoder.H264);
    mMediaRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AAC);
    mMediaRecorder.setOrientationHint(orientation);
    mMediaRecorder.prepare();

但是我在调​​用prepare()时遇到了IllegalStateException。

        java.lang.IllegalStateException
        at android.media.MediaRecorder._prepare(Native Method)
        at android.media.MediaRecorder.prepare(MediaRecorder.java:742)
        at com.example.i047468.videostreaming.VideoRecordingAsyncTask.setUpMediaRecorder(VideoRecordingAsyncTask.java:90)
        at com.example.i047468.videostreaming.VideoRecordingAsyncTask.doInBackground(VideoRecordingAsyncTask.java:52)

当我将输出文件设置为" filePath"在SD卡上一切顺利。所以我猜它无法将outputfile设置为socket fd,因此准备失败。

我如何让这个工作?这里出了什么问题?异常堆栈并没有太多启示。

此致 SHAILESH

0 个答案:

没有答案