我有一个应用程序,其中记录音频文件。 用户可以指定录制的音频长度,样本数量和录制时间。 例如:
length = 3 sec
samples = 2
interval = 5 sec
当应用程序启动时,它会创建一个线程,等待5秒并创建第二个线程。
第一个线程将3秒样本记录到指定目录。
2秒后,下一个线程开始记录第二个样本。 它可以工作并创建两个文件:sample1.3gp,sample2.3gp。
但是当用户指定:
时length = 3 sec
samples = 2
interval = 1 sec
由于第二个线程在第一个线程仍在使用时尝试访问介质记录器,因此无法进行录制。
我希望能够为该资源设置一些锁定。我的意思是什么?
当第一个线程开始3秒录制时,1秒后第二个线程也会尝试录制。
但它应该等待接下来的两秒钟,直到第一个线程完成它的工作。
解决这个问题的最佳方法是什么?
答案 0 :(得分:0)
我建议你阅读一般的线程和互斥。 Read this SO question first并且可能会改进你的要求。
这不是Android特定的问题,而是更多关于使用Java进行线程化的问题。