android弹出窗口用VideoView播放视频的时候,不加MediaController的时候你能够正常播放,但是加上MediaController的时候点击开始就会报出空指针的错误,请问这是怎么回事啊???

解决方案 »

  1.   

    public class MainActivity extends Activity
    {
    @Override
    public void onCreate(Bundle savedInstanceState)
    {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
    // 装载R.layout.popup对应的界面布局
    // 创建PopupWindow对象
    Button button = (Button) findViewById(R.id.bn);
    final Dialog dialog=new Dialog(MainActivity.this);
    dialog.setContentView(R.layout.video); //设置弹出窗口不变黑
    Window window = dialog.getWindow();
    WindowManager.LayoutParams lp = window.getAttributes(); 
    lp.dimAmount =0f;
    window.setAttributes(lp); 

    //播放器

    button.setOnClickListener(new OnClickListener()
    {
    public void onClick(View v)
    {
    dialog.show();
    VideoView video=(VideoView)dialog.findViewById(R.id.video);
       // MediaController mc=(MediaController)dialog.findViewById(R.id.con);
       // video.setMediaController(mc);
    video.setVideoPath("/mnt/sdcard/yinke/shendeng.mp4");
    //mc.show();

        video.start();
    }
    });
    // 获取Popup窗口中的关闭按钮。
    Button quxiao=(Button)dialog.findViewById(R.id.guanbi);
    quxiao.setOnClickListener(
    new View.OnClickListener()
    {
    public void onClick(View v)
    {
    // 关闭Popup窗口

    dialog.hide();
    Log.d("-------------------------", "关闭窗口"); }
    });

    }
    }
    这是Activity的代码<?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical" 
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    >
    <VideoView 
            android:id="@+id/video"
            android:layout_width="200dp"
            android:layout_height="200dp"
            />"
            <MediaController 
                android:id="@+id/con"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"/>"<Button
    android:id="@+id/guanbi"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="关闭" />
    </LinearLayout>
    </LinearLayout>
    video.xml的代码请大神指点一下
      

  2.   

    <MediaController 
                android:id="@+id/con"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"/>"
    这个也是在video.xml中的
      

  3.   

    // MediaController mc=(MediaController)dialog.findViewById(R.id.con);
     // video.setMediaController(mc);要改一下,改成:
    MediaControllermc = new MediaController(MainActivity.this);
    mc.setMediaPlayer(video);
    video.setMediaController(mc);直接通过xml布局文件调用MediaController好像不支持,期待Google官方给出说明,另外,
    MediaController不支持在Dialog窗口里面使用,Dialog窗口里面无法点击MediaController。
      

  4.   

    点击的时候就好像那个Mediacontroller上的按钮好像不在dialog窗口里面,只看到进度条在动
      

  5.   

    是的,之前就跟你说过在Dialog里面是无法控制MediaController的,建议你用FrameLayout来模拟Dialog实现同样的效果。