首頁(yè) 收藏 QQ群
 網(wǎng)站導(dǎo)航

ZNDS智能電視網(wǎng) 推薦當(dāng)貝市場(chǎng)

TV應(yīng)用下載 / 資源分享區(qū)

軟件下載 | 游戲 | 討論 | 電視計(jì)算器

綜合交流 / 評(píng)測(cè) / 活動(dòng)區(qū)

交流區(qū) | 測(cè)硬件 | 網(wǎng)站活動(dòng) | Z幣中心

新手入門 / 進(jìn)階 / 社區(qū)互助

新手 | 你問(wèn)我答 | 免費(fèi)刷機(jī)救磚 | ROM固件

查看: 15672|回復(fù): 0
上一主題 下一主題
[案例]

IllegArugException: The surface has been released

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
發(fā)表于 2013-8-28 16:28 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
1功能:進(jìn)入一個(gè)activity,使用MediaPlayer和SurfaceView類來(lái)播放視頻,啟動(dòng)activity時(shí),直接初始化做MediaPlayer.start(),而不是通過(guò)一個(gè)監(jiān)聽器什么的來(lái)啟動(dòng),就會(huì)出現(xiàn):The surface has been released.   
錯(cuò)誤位置:mediaplayer.setDisplay(surfaceView.getHost());   
原因:mediaPlayer對(duì)象沒有做好準(zhǔn)備。   
為什么?想想,如果你做一個(gè)監(jiān)聽,那么,視頻就不是直接播放了,他有充分時(shí)間做準(zhǔn)備了,就不會(huì)有錯(cuò)誤了。   
解決方法:寫一個(gè)通過(guò)一個(gè)ScheduledExecutorService和Handler類來(lái)解決??创a,不多。[mw_shl_code=java,true]import android.view.SurfaceView;   
   
public class PlayActivity extends Activity {   
   
        private static String path,endName;   
           
        private SurfaceHolder mSurfaceHolder;   
        private SurfaceView mSurfaceView;   
        private MediaPlayer mMediaPlayer;   
           
        private ScheduledExecutorService executorService;   
           
        private Handler handler;   
           
        @Override   
        public void onCreate(Bundle savedInstanceState) {   
                super.onCreate(savedInstanceState);   
                setContentView(R.layout.play);   
                initialize();   
        }   
           
        private void initialize(){   
                executorService = Executors.newScheduledThreadPool(1);   
                mSurfaceView = (SurfaceView) findViewById(R.id.VideoView01);   
                mSurfaceHolder = mSurfaceView.getHolder();   
                mSurfaceHolder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);   
                Intent i = getIntent();   
                path = i.getStringExtra("path");   
                endName = i.getStringExtra("endName");   
                Log.i("abc", path+","+endName);   
                handler = new Handler(new Handler.Callback() {   
                        @Override   
                        public boolean handleMessage(Message msg) {   
                                initMedia();   
                                return false;   
                        }   
                });   
                executorService.schedule(new Runnable() {   
                        @Override   
                        public void run() {   
                                handler.sendEmptyMessage(0);   
                        }   
                }, 10000, TimeUnit.MICROSECONDS);   
        }   
           
           
        private void initMedia(){   
                mMediaPlayer = new MediaPlayer();   
                mMediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);   
                mMediaPlayer.setDisplay(mSurfaceHolder);   
                try {   
                        mMediaPlayer.setDataSource(path);   
                        mMediaPlayer.prepare();   
                } catch (IllegalArgumentException e) {   
                        // TODO Auto-generated catch block   
                        e.printStackTrace();   
                } catch (IllegalStateException e) {   
                        // TODO Auto-generated catch block   
                        e.printStackTrace();   
                } catch (IOException e) {   
                        // TODO Auto-generated catch block   
                        e.printStackTrace();   
                }   
                mMediaPlayer.start();   
        }   
[/mw_shl_code]   
          該貼已經(jīng)同步到 LinPeiChun的微博</font

上一篇:[底層開發(fā)教程] 從底層硬件到開發(fā)平臺(tái)--一步步深入Android底
下一篇:在線更新——之實(shí)例版!

本版積分規(guī)則

Archiver|新帖|標(biāo)簽|軟件|Sitemap|ZNDS智能電視網(wǎng) ( 蘇ICP備2023012627號(hào) )

網(wǎng)絡(luò)信息服務(wù)信用承諾書 | 增值電信業(yè)務(wù)經(jīng)營(yíng)許可證:蘇B2-20221768 丨 蘇公網(wǎng)安備 32011402011373號(hào)

GMT+8, 2024-12-28 01:32 , Processed in 0.068504 second(s), 16 queries , Redis On.

Powered by Discuz!

監(jiān)督舉報(bào):report#znds.com (請(qǐng)將#替換為@)

© 2007-2024 ZNDS.Com

快速回復(fù) 返回頂部 返回列表