Android:尝试从 URI 播放视频时应用程序强制关闭

Posted

技术标签:

【中文标题】Android:尝试从 URI 播放视频时应用程序强制关闭【英文标题】:Android: app forces close when trying to play video from URI 【发布时间】:2012-07-18 14:47:13 【问题描述】:

我编写了这段代码来尝试将视频流式传输到我的 android 设备。单击图标后,应该会出现一个弹出窗口,其中包含 VideoView。但是,每当我单击图像触发弹出窗口时,它都会强制关闭。我正在使用的 URL 显然可以流式传输到设备,我从另一个 SO 问题中得到它。这是我课堂上的代码。

    video.setOnClickListener(new View.OnClickListener() 

        @Override
        public void onClick(View v) 
            // TODO Auto-generated method stub
            final Dialog dialog = new Dialog(context);
            dialog.setContentView(R.layout.pop_up);
            dialog.setTitle("Safe Cracker Overview");

            VideoView vv = (VideoView)findViewById(R.id.vv01);
            MediaController mc = new MediaController(context);
            mc.setAnchorView(vv);
            mc.setMediaPlayer(vv);
            vv.setMediaController(mc);
            vv.setVideoURI(Uri.parse("http://hermes.sprc.samsung.pl/widget/tmp/testh.3gp"));
            vv.requestFocus();
            vv.start();
            Button ok = (Button)findViewById(R.id.but01);

            ok.setOnClickListener(new View.OnClickListener() 

                @Override
                public void onClick(View v) 
                    // TODO Auto-generated method stub
                    dialog.dismiss();
                
            );

            dialog.show();
        
    );

以及弹出布局的 XML:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/layout1"
    android:layout_
    android:layout_
    android:orientation="vertical" >

    <VideoView
        android:id="@+id/vv01"
        android:layout_
        android:layout_
        android:layout_marginTop="20dp"
        android:background="#0000" >
    </VideoView>

    <Button
        android:id="@+id/but01"
        android:layout_
        android:layout_
        android:layout_gravity="center"
        android:layout_marginTop="10dp"
        android:background="@drawable/green_button"
        android:text="@string/back"
        android:textColor="@color/white"
        android:textSize="16dp" >
    </Button>

</LinearLayout>

任何人都可以在这里看到问题吗?谢谢

【问题讨论】:

【参考方案1】:

改变

VideoView vv = (VideoView)findViewById(R.id.vv01);

VideoView vv = (VideoView)dialog .findViewById(R.id.vv01);

Button ok = (Button)findViewById(R.id.but01);Button ok = (Button)dialog .findViewById(R.id.but01);

【讨论】:

它不再强制关闭并且现在出现弹出窗口,但视频没有出现在弹出窗口中!【参考方案2】:

你忘了给dialog for VideoView and Button.的引用

VideoView vv = (VideoView)dialog.findViewById(R.id.vv01);
                          ^^^^^^  
Button ok = (Button)dialog.findViewById(R.id.but01);
                    ^^^^^^ 

【讨论】:

以上是关于Android:尝试从 URI 播放视频时应用程序强制关闭的主要内容,如果未能解决你的问题,请参考以下文章

Android 获取视频 URI 源

无法在 Xamarin Android 上播放本地视频

播放视频的Android意图?

无法在 Android 中使用 React Native Video DRM Fork 播放 DRM 视频

视频播放停止时如何切换到活动

尝试从原始文件夹(VideoView)播放视频