如何销毁videoview,然后重新实例化一个?

oSimon123456789 2013-05-27 06:29:34
每次有个不能播放的视频之后,它自动调到OnErrorListener实现的方法里。这时在播放其他正常的视频,正常的视频也播不了了...然后我就像在 OnErrorListener实现的方法里 mp.reset();mp.release();mp = null; videoview = null;然后重新实例化,在播放正常可以播放的视频,这时总会报

05-27 06:10:00.815: E/AndroidRuntime(5464): java.lang.IllegalStateException
05-27 06:10:00.815: E/AndroidRuntime(5464): at android.media.MediaPlayer._reset(Native Method)
05-27 06:10:00.815: E/AndroidRuntime(5464): at android.media.MediaPlayer.reset(MediaPlayer.java:1326)
05-27 06:10:00.815: E/AndroidRuntime(5464): at com.test.test.VideoView.openVideo(VideoView.java:208)
05-27 06:10:00.815: E/AndroidRuntime(5464): at com.test.test.VideoView.setVideoURI(VideoView.java:182)
05-27 06:10:00.815: E/AndroidRuntime(5464): at com.test.test.VideoView.setVideoPath(VideoView.java:175)
05-27 06:10:00.815: E/AndroidRuntime(5464): at com.test.test.MainActivity.play(MainActivity.java:94)
05-27 06:10:00.815: E/AndroidRuntime(5464): at com.test.test.MainActivity.onItemClick(MainActivity.java:449)
05-27 06:10:00.815: E/AndroidRuntime(5464): at android.widget.AdapterView.performItemClick(AdapterView.java:298)
05-27 06:10:00.815: E/AndroidRuntime(5464): at android.widget.AbsListView.performItemClick(AbsListView.java:1100)
05-27 06:10:00.815: E/AndroidRuntime(5464): at android.widget.AbsListView.onKeyUp(AbsListView.java:2890)
05-27 06:10:00.815: E/AndroidRuntime(5464): at android.widget.ListView.commonKey(ListView.java:2258)
05-27 06:10:00.815: E/AndroidRuntime(5464): at android.widget.ListView.onKeyUp(ListView.java:2113)
05-27 06:10:00.815: E/AndroidRuntime(5464): at android.view.KeyEvent.dispatch(KeyEvent.java:2729)
05-27 06:10:00.815: E/AndroidRuntime(5464): at android.view.View.dispatchKeyEvent(View.java:7198)
05-27 06:10:00.815: E/AndroidRuntime(5464): at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1354)
05-27 06:10:00.815: E/AndroidRuntime(5464): at android.widget.ListView.dispatchKeyEvent(ListView.java:2088)
05-27 06:10:00.815: E/AndroidRuntime(5464): at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1359)
05-27 06:10:00.815: E/AndroidRuntime(5464): at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1359)
05-27 06:10:00.815: E/AndroidRuntime(5464): at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1359)
05-27 06:10:00.815: E/AndroidRuntime(5464): at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1359)
05-27 06:10:00.815: E/AndroidRuntime(5464): at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1359)
05-27 06:10:00.815: E/AndroidRuntime(5464): at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1359)
05-27 06:10:00.815: E/AndroidRuntime(5464): at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1359)
05-27 06:10:00.815: E/AndroidRuntime(5464): at com.android.internal.policy.impl.PhoneWindow$DecorView.superDispatchKeyEvent(PhoneWindow.java:1985)
05-27 06:10:00.815: E/AndroidRuntime(5464): at com.android.internal.policy.impl.PhoneWindow.superDispatchKeyEvent(PhoneWindow.java:1398)
05-27 06:10:00.815: E/AndroidRuntime(5464): at android.app.Activity.dispatchKeyEvent(Activity.java:2370)
05-27 06:10:00.815: E/AndroidRuntime(5464): at com.android.internal.policy.impl.PhoneWindow$DecorView.dispatchKeyEvent(PhoneWindow.java:1912)
05-27 06:10:00.815: E/AndroidRuntime(5464): at android.view.ViewRootImpl.deliverKeyEventPostIme(ViewRootImpl.java:3701)
05-27 06:10:00.815: E/AndroidRuntime(5464): at android.view.ViewRootImpl.handleImeFinishedEvent(ViewRootImpl.java:3651)
05-27 06:10:00.815: E/AndroidRuntime(5464): at android.view.ViewRootImpl$ViewRootHandler.handleMessage(ViewRootImpl.java:2818)
05-27 06:10:00.815: E/AndroidRuntime(5464): at android.os.Handler.dispatchMessage(Handler.java:99)
05-27 06:10:00.815: E/AndroidRuntime(5464): at android.os.Looper.loop(Looper.java:137)
05-27 06:10:00.815: E/AndroidRuntime(5464): at android.app.ActivityThread.main(ActivityThread.java:5039)
05-27 06:10:00.815: E/AndroidRuntime(5464): at java.lang.reflect.Method.invokeNative(Native Method)
05-27 06:10:00.815: E/AndroidRuntime(5464): at java.lang.reflect.Method.invoke(Method.java:511)
05-27 06:10:00.815: E/AndroidRuntime(5464): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)
05-27 06:10:00.815: E/AndroidRuntime(5464): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560)
05-27 06:10:00.815: E/AndroidRuntime(5464): at dalvik.system.NativeStart.main(Native Method)
...全文
863 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
oSimon123456789 2013-05-27
  • 打赏
  • 举报
回复
引用 1 楼 l417584711 的回复:
可以用不同的手机测试,这个问题可能是底层不够“健壮”
请问一下videoview该怎么彻底把他释放掉呢?都把mediaplayer释放了和videoview赋了空值,还是不能重新创建他呢?
aSysBang 2013-05-27
  • 打赏
  • 举报
回复
可以用不同的手机测试,这个问题可能是底层不够“健壮”

80,349

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧