zoukankan      html  css  js  c++  java
  • The surface has been released 异常

    http://dingran.iteye.com/blog/1442502

    =====================================

    在使用surfaceView和MediaPlayer播放视频的时候出现了一个异常,纠结了很久,经过同事帮助,终于发现了问题的根源。

     

    异常如下:

     

    E/AndroidRuntime( 1765): Caused by: java.lang.IllegalArgumentException: The surface has been released
    E/AndroidRuntime( 1765):     at android.media.MediaPlayer._setVideoSurface(Native Method)
    E/AndroidRuntime( 1765):     at android.media.MediaPlayer.setDisplay(MediaPlayer.java:633)

     

     

    原因是在surfaceHolder还没准备好的时候,我就调用了MediaPlayer的start()方法。

     

    正确的播放流程应该是:

     

            surfaceView = (SurfaceView) findViewById(R.id.PlaySurfaceView);
            surfaceHolder = surfaceView.getHolder();
            surfaceHolder.addCallback(this);

     

          mediaPlayer.setDisplay(surfaceHolder);

     

    try {
                
                mediaPlayer.setDataSource(this, Uri.parse("/sdcard/bianxing.ts"));
                
            } catch (IllegalArgumentException e1) {
                e1.printStackTrace();
            } catch (SecurityException e1) {
                e1.printStackTrace();
            } catch (IllegalStateException e1) {
                e1.printStackTrace();
            } catch (IOException e1) {
                e1.printStackTrace();
            }
            
            try {
                mediaPlayer.prepare();
            } catch (IllegalStateException e1) {
                e1.printStackTrace();
            } catch (IOException e1) {
                e1.printStackTrace();
            }
            
            mediaPlayer.setOnPreparedListener(new OnPreparedListener() {
                
                @Override
                public void onPrepared(MediaPlayer mp) {
                    
                    mediaPlayer.start();
                    
                }
            });

     

    这样就可以正常播放了,唉,不容易啊,感谢同事的帮助。

     

    其实对Medialayer的封装来说,VideoView已经做的很好了,自己再写这些确实费力,期望以后扩展会好点


    Meet so Meet. C plusplus I-PLUS....
  • 相关阅读:
    卫星天线基础知识点
    Compling_Windows_Server_2003
    抛物线天线的结构组成
    UHP Command List
    C波段卫星天线秒变Ku波段卫星天线
    FineUIPro/Mvc/Core v7.0.0 正式发布了!
    【新特性速递】表格行分组(续)
    【新特性速递】表格行分组(EnableRowGroup)
    【新特性速递】树表格复选框与级联选择(TreeCheckBox,TreeCascadeCheck)
    【新特性速递】平铺数字输入框的触发图标(NumberBoxTriggerType)
  • 原文地址:https://www.cnblogs.com/iplus/p/4467404.html
Copyright © 2011-2022 走看看