簡體   English   中英

Android Studio-視頻應用程序崩潰-Videoview和Mediaplayer-無法播放錄像

[英]Android Studio - Video application crashes - Videoview & Mediaplayer - Can not play recording

我有一個應用程序,在該應用程序中,我使用按鈕來通過意圖錄制視頻來啟動相機。 這項工作正常,應用程序返回到mainactivity。 返回mainactivity后,我希望最后一個錄制的視頻在VideoView中播放。 此時,我的問題出現了。

我試圖按照下面提供的鏈接上的說明進行操作,但顯然不正確。

https://developer.android.com/training/camera/videobasics.html

Logcat說我需要使用Mediaplayer。 有人可以幫我一些代碼嗎?

提前致謝!

package com.example.t.videorecorder;

import android.content.Intent;
import android.media.MediaPlayer;
import android.net.Uri;
import android.provider.MediaStore;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.VideoView;

public class MainActivity extends AppCompatActivity {

static final int REQUEST_VIDEO_CAPTURE=1;



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

public void startCamera(View view){
    Intent intent= new Intent(MediaStore.ACTION_VIDEO_CAPTURE);
    if (intent.resolveActivity(getPackageManager())!=null){
        startActivityForResult(intent, REQUEST_VIDEO_CAPTURE);
    }
}

@Override
protected void onActivityResult(int requestCode, int resultCode, Intentintent) {

    VideoView vW=(VideoView)findViewById(R.id.videoView);
    if (requestCode==REQUEST_VIDEO_CAPTURE && resultCode==RESULT_OK){
        Uri video= intent.getData();
        vW.setVideoURI(video);
    }
}
}

logcat的:

11-09 12:43:12.894 27047-27047/com.example.t.videorecorder E/MediaPlayer[Native]: Unable to create media player
11-09 12:43:12.896 27047-27047/com.example.t.videorecorder W/VideoView: Unable to open content: content://media/external/video/media/33789
java.io.IOException: setDataSource failed.: status=0x80000000
at android.media.MediaPlayer.nativeSetDataSource(Native Method)
at android.media.MediaPlayer.setDataSource(MediaPlayer.java:1061)
at android.media.MediaPlayer.setDataSource(MediaPlayer.java:1050)
at android.media.MediaPlayer.setDataSource(MediaPlayer.java:1004)
at android.widget.VideoView.openVideo(VideoView.java:353)
at android.widget.VideoView.access$2200(VideoView.java:72)
at android.widget.VideoView$7.surfaceCreated(VideoView.java:664)
at android.view.SurfaceView.updateWindow(SurfaceView.java:579)
at android.view.SurfaceView.onWindowVisibilityChanged(SurfaceView.java:238)
at android.view.View.dispatchWindowVisibilityChanged(View.java:8704)
at android.view.ViewGroup.dispatchWindowVisibilityChanged(ViewGroup.java:1269)
at android.view.ViewGroup.dispatchWindowVisibilityChanged(ViewGroup.java:1269)
at android.view.ViewGroup.dispatchWindowVisibilityChanged(ViewGroup.java:1269)
at android.view.ViewGroup.dispatchWindowVisibilityChanged(ViewGroup.java:1269)
at android.view.ViewGroup.dispatchWindowVisibilityChanged(ViewGroup.java:1269)
at android.view.ViewGroup.dispatchWindowVisibilityChanged(ViewGroup.java:1269)
at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1338)
at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1077)
at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:5845)
at android.view.Choreographer$CallbackRecord.run(Choreographer.java:767)
at android.view.Choreographer.doCallbacks(Choreographer.java:580)
at android.view.Choreographer.doFrame(Choreographer.java:550)
at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:753)
at android.os.Handler.handleCallback(Handler.java:739)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:135)
at android.app.ActivityThread.main(ActivityThread.java:5272)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:909)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:704)

以下是包含媒體播放器的代碼:

vW.setMediaController(new MediaController(this));
vW.requestFocus();
vW.start();

並在清單中添加READ_EXTERNAL_STORAGE權限

<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>

在android棉花糖中,依次轉到設置和應用,然后轉到該應用,並在權限中授予存儲訪問權限。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM