【问题标题】:Nexus6 Can't play this videoNexus6 无法播放此视频
【发布时间】:2016-05-04 17:11:30
【问题描述】:

我正在关注这个[示例][1],以了解如何使用 Android 摄像机。

我的活动代码只是一个按钮和一个视频视图。 点击按钮后,我录制视频,然后在停止录制后,录制的视频在 VideoView 上可见。 该代码在 Galaxy S2(api16) 和华为 L21(api 22) 上完美运行,但在摩托罗拉 Nexus 6(api23) 上我遇到了这个错误

无法播放此视频

这是我的活动文件:

public class MainActivity extends AppCompatActivity {

@Bind(R.id.button)
Button button;

@Bind(R.id.videoView)
VideoView videoView;

private Uri fileUri;
public static final int MEDIA_TYPE_VIDEO = 2;
private static final int CAPTURE_VIDEO_ACTIVITY_REQUEST_CODE = 200;


@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    ButterKnife.bind(this);
}

@OnClick(R.id.button)
protected void startRecording() {
    launchCamera();
}

private void launchCamera() {
    Intent intent = new Intent(MediaStore.ACTION_VIDEO_CAPTURE);
    fileUri = getOutputMediaFileUri(MEDIA_TYPE_VIDEO);  // create a file to save the video
    intent.putExtra(MediaStore.EXTRA_OUTPUT, fileUri);  // set the image file name
    // set the video image quality to high
   startActivityForResult(intent, CAPTURE_VIDEO_ACTIVITY_REQUEST_CODE);
}

private  Uri getOutputMediaFileUri(int type) {
    Uri myUri =  Uri.fromFile(getOutputMediaFile(type));
    Log.d("TAG","uri we have is "+myUri);
    return myUri ;
}

private  File getOutputMediaFile(int type){

    File mediaStorageDir = new File(Environment.getExternalStoragePublicDirectory(
            Environment.DIRECTORY_MOVIES), "MyCameraApp");

    if (! mediaStorageDir.exists()){
        if (! mediaStorageDir.mkdirs()){
            Log.d("MyCameraApp", "failed to create directory");
            return null;
        }
    }

    String timeStamp = new SimpleDateFormat("yyyyMMdd_HHmmss").format(new Date());
    File mediaFile;

        mediaFile = new File(mediaStorageDir.getPath() + File.separator +
                "VID_"+ timeStamp + ".mp4");

    return mediaFile;
}


@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
            videoView.setVideoURI(fileUri);
            videoView.start();
}

}

还有我用 Nexus6 得到的日志

 W/VideoView: Unable to open content: file:///storage/emulated/0/Movies/MyCameraApp/VID_20160503_132541.mp4
                                                                         java.io.IOException: setDataSource failed.
                                                                             at android.media.MediaPlayer.setDataSource(MediaPlayer.java:1096)
                                                                             at android.media.MediaPlayer.setDataSource(MediaPlayer.java:1042)
                                                                             at android.media.MediaPlayer.setDataSource(MediaPlayer.java:991)
                                                                             at android.widget.VideoView.openVideo(VideoView.java:348)
                                                                             at android.widget.VideoView.-wrap0(VideoView.java)
                                                                             at android.widget.VideoView$7.surfaceCreated(VideoView.java:624)
                                                                             at android.view.SurfaceView.updateWindow(SurfaceView.java:595)
                                                                             at android.view.SurfaceView.onWindowVisibilityChanged(SurfaceView.java:243)
                                                                             at android.view.View.dispatchWindowVisibilityChanged(View.java:10214)

  [1]: http://developer.android.com/intl/es/guide/topics/media/camera.html

知道为什么不能在 Nexus 6 上运行吗?

【问题讨论】:

标签: android android-camera android-videoview android-camera-intent


【解决方案1】:

在将相机版本应用更新到 3.2.045 后修复。 这是相机应用程序本身的问题,而不是我发布的代码中的问题。

【讨论】:

    猜你喜欢
    • 2015-10-09
    • 2018-12-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-04
    • 1970-01-01
    相关资源
    最近更新 更多