[英]VideoView not playing video (crash)
我為Android Studio中的應用制作了VideoView
。 VideoView
以新視圖播放視頻,非常簡單。 它一直都有效,直到我更改了視頻的來源。 當我將源從'handleiding'
更改為'handleidingengels'
,控制台出現以下錯誤:
05-02 22:49:59.450 26710-26710/com.company.app E/MediaPlayer﹕ Unable to create media player
05-02 22:49:59.452 26710-26710/com.company.app D/MediaPlayer﹕ Couldn't open file on client side, trying server side
05-02 22:49:59.459 26710-26721/com.company.app E/MediaPlayer﹕ error (1, -2147483648)
05-02 22:49:59.557 26710-26710/com.company.app E/MediaPlayer﹕ Error (1,-2147483648)
05-02 22:49:59.558 26710-26710/com.company.app D/VideoView﹕ Error: 1,-2147483648
05-02 22:49:59.586 26710-26710/com.company.app
D/AndroidRuntime﹕ Shutting down VM
05-02 22:49:59.586 26710-26710/com.company.app W/dalvikvm﹕ threadid=1: thread exiting with uncaught exception (group=0x415ddd40)
05-02 22:49:59.589 26710-26710/com.company.app E/AndroidRuntime﹕ FATAL EXCEPTION: main
Process: com.company.app, PID: 26710
android.view.WindowManager$BadTokenException: Unable to add window -- token null is not for an application
at android.view.ViewRootImpl.setView(ViewRootImpl.java:554)
at android.view.WindowManagerGlobal.addView(WindowManagerGlobal.java:259)
at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:69)
at android.app.Dialog.show(Dialog.java:286)
at android.app.AlertDialog$Builder.show(AlertDialog.java:951)
at android.widget.VideoView$5.onError(VideoView.java:515)
at android.media.MediaPlayer$EventHandler.handleMessage(MediaPlayer.java:2264)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:136)
at android.app.ActivityThread.main(ActivityThread.java:5086)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:515)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:785)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:601)
at dalvik.system.NativeStart.main(Native Method)
這是我的代碼:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.video);
FrameLayout.LayoutParams lp = new FrameLayout.LayoutParams(
ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT);
FrameLayout fl = new FrameLayout(this);
fl.setLayoutParams(lp);
final int INSERT_ID = Menu.FIRST;
System.gc();
Intent i = getIntent();
Bundle extras = i.getExtras();
VideoView vv = new VideoView(getApplicationContext());
setContentView(vv);
FrameLayout.LayoutParams lp2 = new FrameLayout.LayoutParams(lp);
lp2.gravity = Gravity.CENTER;
vv.setLayoutParams(lp2);
vv.setVideoURI(Uri.parse("android.resource://" + getPackageName() + "/" + R.drawable.handleidingengels));
vv.setMediaController(new MediaController(this));
vv.requestFocus();
vv.start();
vv.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {
@Override
public void onPrepared(MediaPlayer mp) {
mp.setVolume(0, 0);
}
});
}
private void createNote() {
requestWindowFeature(Window.FEATURE_NO_TITLE);
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
WindowManager.LayoutParams.FLAG_FULLSCREEN);
}
問題是這條線
VideoView vv = new VideoView(getApplicationContext());
您需要的是Activity上下文
VideoView vv = new VideoView(this);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.