问题描述
- 关于在android下用ffmpeg和sdl开发播放器的问题
-
从网上找了个ffmpeg和SDL开发的全格式播放器,但是发现每次播放完毕就会kill掉APP,好像是由于exit(0)执行的结果。
请问有没有人研究过这一块儿,如何只退出当前的activity,回到列表页面,而且下次进来还可以继续播放?
如果把C代码中解码和播放的部分写成线程有用吗?
解决方案
播放过程有没有先放在 Service 中?就像音乐播放器的实现一样。
解决方案二:
没有放在service中,但是放在一个线程中。我现在觉得是使用的SDL绘图的地方退不掉。我不调用exit(0),用return,程序不会退出,但是下次再播放的时候,会报错:
12-13 11:39:09.739: E/dalvikvm(30416): ERROR: detaching thread with interp frames (count=3)
12-13 11:39:09.739: I/dalvikvm(30416): "SDLThread0" prio=5 tid=17 RUNNABLE
12-13 11:39:09.739: I/dalvikvm(30416): | group="main" sCount=0 dsCount=0 obj=0x41fde248 self=0x5f8fe080
12-13 11:39:09.739: I/dalvikvm(30416): | sysTid=30942 nice=0 sched=0/0 cgrp=apps handle=1613390992
12-13 11:39:09.739: I/dalvikvm(30416): | schedstat=( 826167 1163541 17 ) utm=0 stm=0 core=2
12-13 11:39:09.739: I/dalvikvm(30416): at org.libsdl.app.SDLActivity.PlayerPrepare(Native Method)
12-13 11:39:09.739: I/dalvikvm(30416): at org.libsdl.app.SDLMain.run(SDLActivity.java:674)
12-13 11:39:09.739: I/dalvikvm(30416): at java.lang.Thread.run(Thread.java:856)
12-13 11:39:09.739: E/dalvikvm(30416): VM aborting
我已经把SDLThread0 interrupted掉了,但是好像它与C代码的attach没有断掉。