Android录像机应用程序-“视频无法播放”错误

时间:2019-02-26 07:27:18

标签: android video encoding media recorder

我已经开发了一个Android应用程序来录制视频。该应用程序可以在我的手机上顺利运行,录制的视频可以与手机一起在其他设备上播放。但是,我必须在Android-X86映像上安装此应用程序。 该设备是Lenevo Ideapad 330 。应用程序运行非常平稳,可以录制视频。但是,当我尝试在同一(和其他)设备上播放录制的视频时,它显示-视频无法播放。文件大小足够大。

以下是Media Recorder的源代码-

mMediaRecorder.setAudioSource(MediaRecorder.AudioSource.MIC);
    mMediaRecorder.setVideoSource(MediaRecorder.VideoSource.SURFACE);
    mMediaRecorder.setOutputFormat(MediaRecorder.OutputFormat.MPEG_4);
    if (mNextVideoAbsolutePath == null || mNextVideoAbsolutePath.isEmpty()) {
        mNextVideoAbsolutePath = getVideoFilePath(getActivity());
    }
    mMediaRecorder.setOutputFile(mNextVideoAbsolutePath);
    mMediaRecorder.setVideoEncodingBitRate(10000000);
    mMediaRecorder.setVideoFrameRate(30);
    //mMediaRecorder.setVideoEncodingBitRate(1000000);
    //mMediaRecorder.setVideoFrameRate(18);
    mMediaRecorder.setVideoSize(mVideoSize.getWidth(), mVideoSize.getHeight());
    //mMediaRecorder.setVideoSize(1280, 720);
    //mMediaRecorder.setVideoFrameRate(30);
    mMediaRecorder.setVideoEncoder(MediaRecorder.VideoEncoder.H264);
    mMediaRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AAC);
    int rotation = activity.getWindowManager().getDefaultDisplay().getRotation();
    switch (mSensorOrientation) {
        case SENSOR_ORIENTATION_DEFAULT_DEGREES:
            mMediaRecorder.setOrientationHint(DEFAULT_ORIENTATIONS.get(rotation));
            break;
        case SENSOR_ORIENTATION_INVERSE_DEGREES:
            mMediaRecorder.setOrientationHint(INVERSE_ORIENTATIONS.get(rotation));
            break;
    }

    mMediaRecorder.prepare();

其他方法可能没有问题,因为电话中的视频录制工作正常。

我想知道问题是否与输出格式或VideoEncoder有关。我尝试了几种编码器,包括3GPP,VP8,H263。还没有运气。

我们非常感谢您的帮助。谢谢。

0 个答案:

没有答案