我在Android开发中的新手。试图创建一个有效的视频播放器,但会出错。单击播放按钮时,只有声音没有视频和黑屏。试过一些建议的解决方案 - 没什么用。这是代码:
import android.media.MediaPlayer;
import android.net.Uri;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.Button;
import android.widget.MediaController;
import android.widget.VideoView;
public class MainActivity extends AppCompatActivity {
Button btn;
VideoView videoView;
MediaController mediaController;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
videoView = (VideoView) findViewById(R.id.vdView);
btn = (Button) findViewById(R.id.startBtn);
mediaController = new MediaController(this);
}
public void startVideo(View view) {
String filePath = "android.resource://" + getPackageName()+ "/" + R.raw.cartoon;
Uri uri = Uri.parse(filePath);
videoView.setVideoURI(uri);
mediaController.setAnchorView(videoView);
videoView.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {
public void onPrepared(MediaPlayer mp) {
videoView.start();
}
});
}
}
控制台中的错误:
D/MediaPlayer: getMetadata
E/MediaPlayer: error (1, -38)
E/MediaPlayer: error (1, -38)
E/MediaPlayer: error (1, -38)
E/MediaPlayer: Error (1,-38)
D/VideoView: Error: 1,-38
E/MediaPlayer: Error (1,-38)
D/VideoView: Error: 1,-38
E/MediaPlayer: Error (1,-38)
D/VideoView: Error: 1,-38
D/EGL_emulation: eglMakeCurrent: 0x7f889b45a660: ver 2 0
D/EGL_emulation: eglMakeCurrent: 0x7f889b45a660: ver 2 0
D/EGL_emulation: eglMakeCurrent: 0x7f889b45a660: ver 2 0
D/EGL_emulation: eglMakeCurrent: 0x7f889b45a660: ver 2 0
I/Choreographer: Skipped 47 frames! The application may be doing too much work on its main thread.
如何修复它?