gpt4 book ai didi

java - 如何在 Java 中完全停止线程?

转载 作者:行者123 更新时间:2023-11-30 02:01:53 26 4
gpt4 key购买 nike

我知道这个问题以前被问过很多次了。我不想在 Run() 方法中添加标志。因为该方法仍在运行并耗尽电池电量。我怎样才能完全停止线程?!

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_layout);

AudioDispatcher dispatcher = AudioDispatcherFactory.fromDefaultMicrophone(22050,1024,0);
dispatcher.addAudioProcessor(new PitchProcessor(PitchEstimationAlgorithm.AMDF, 22050, 1024, new PitchDetectionHandler() {

@Override
public void handlePitch(PitchDetectionResult pitchDetectionResult,
AudioEvent audioEvent) {
final float pitchInHz = pitchDetectionResult.getPitch();
runOnUiThread(new Runnable() {
@Override
public void run() {

Log.i("" + pitchInHz);

}
});

}
}));

Thread thread = new Thread(dispatcher,"Audio Dispatcher");
thread.start();

}

最佳答案

很确定这对你来说不再重要了,但对于任何将来可能使用 TarsosDSP 并面临同样问题的人来说,最简单的方法是制作一个全局 dispatcher

dispatcher = AudioDispatcherFactory.fromDefaultMicrophone(22050,1024,0);

然后简单地停止 线程:

dispatcher.stop();

关于java - 如何在 Java 中完全停止线程?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31347502/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com