我一直在努力实现一个可以将音频流下载到文件中的android service
。然后可以同时播放该文件。
这样我也可以实现缓冲。
我正在使用多个线程。所以我第一次尝试ExecutorService
。
代码是here on github,有很多评论需要解释。
它会在某段时间内完美地下载和播放流,但过了一会儿(比如在1或2分钟后)它会停止而不会抛出任何异常&甚至不在日志中打印任何东西。
代码说明:
要关注的主要类是ServiceExecutor,这是一个Android服务。
通过缓冲我的意思是,递归检查文件是否有足够的数据来连续播放流。 在每个呼叫中,它检查临时文件是否具有少于2秒的剩余流量&文件仍在下载,然后暂停媒体播放器5秒钟。 它维护一个变量'pausedAtMilliSec',它记录流暂停的位置,这样如果玩家突然停止,它就可以从那里恢复。
正如你现在所看到的,我在线程方面不是很好。 在我看来,问题在于多线程处理(似乎,但不确定)。
随时发布任何评论或建议。我不会心疼,而是快乐。
请检查一次代码。
我知道PocketJourney's代码。但是也想尝试我的。
谢谢