作者aiweisen (三重刘德华)
看板AndroidDev
标题[问题] 程式流程的问题
时间Fri Jul 26 10:38:53 2013
是这样的
我有到底层呼叫C来使用 也就是我有使用ffmpeg 目的是用来作影片的切割
ffmpeg是使用intentservice的方式 另外给了service process name
------------------------------------------------------------------------------
(原因在於ffmpeg在每次使用时都要对参数初始化 c目前还不会改 只好从process方面下手
每做完一次ffmpeg 就删除process 再次使用时 就会重新初始化)
------------------------------------------------------------------------------
大致上理想的流程如下
在main thread 下建立一个thread >> thread的工作是执行ffmpeg >>
执行完ffmpeg後 删除process(for service) >> 重复上述第二、三个步骤直到切割结束
我遇到的问题如下
Thread threadB = new Thread(new Runnable() {
public void run() {
System.out.println("ffmpeg 开始..");
test(); //负责执行ffmpeg
System.out.println("ffmpeg 即将结束.."); System.out.println("aaaaa"+a);
}
});
threadB.start();
如果我在thread外面加一层loop, 就会无法按照我前面的流程走.
他会直接在main thread下把loop内跑完, 才会开始逐一的执行ffmpeg.
这样子ffmpeg的pid都会是一样,这会导致在做第二块时无法初始化.
-----------------------------------------------------------------------------
我有在service的程式码後面有加上onDestroy() 让他做删除pid的动作
当用loop跑的时候 onDestroy()这块没有被执行 不知原因如何
-----------------------------------------------------------------------------
目前有试过join 让main thread等待 跟AsyncTask 让ffmpeg在doInBackground执行
但这些都会遇到前面同样的问题
我想问的是 有什麽方法 可以不断地重复地执行相同的service?
※在执行ffmpeg时 切割需要数秒的时间 所以必须等待做完後 才能呼叫下一个service
--
作者 strike519 (嘘我者 宅友也) 看板 Gossiping
标题 Re: [问卦] 有没有湿耳屎的八卦?
我就是湿的耳朵儿 医生说不用清 耳朵有自我机制会清除脏污 结果去游泳就塞住了
再去给医生挖 就变成顺风耳 可以远远听到正妹的心跳声 超爽~
1F:→ Atwo:你现在跟在林默娘身边吗? 06/19 14:50
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.138.238.89
自己又解决了...没想到是用简单的BROADCAST就行了...冏rz
我是设计成 当ffmpeg执行完 就send一个广播出去(写在ondesdroy)
负责接收广播的activity就会去重复的呼叫ffmpeg 形成一个loop 如下
activity(接收广播)<------------->ffmpeg(做完送广播)
loooooooooop
而且activity会记录该执行几次ffmpeg 超过之後就不会再去呼叫ffmpeg
※ 编辑: aiweisen 来自: 140.138.150.27 (07/29 16:10)