大树学长 2017-02-08 08:03 采纳率: 50%
浏览 1262
已结题

语音计算机,语音播报结果的问题???

比如一串很长的数字结果:123456789.123,用语音播报出来
每个数字、符号的音乐文件都有,
我用的是SoundPool,正常播报都是从1开始,1读完然后是单位+2+单位+3+单位。。。。这样播报,这就需要在每次播报时加一个延时,
try
{
Thread thread = Thread.currentThread();
thread.sleep(500);//延时0.5秒
}
catch (InterruptedException e)
{
e.printStackTrace();
}
我用的sleep,这样会出现会死锁,不能中断也不能继续点屏幕上按钮,因为有时候会在结果没有播报完时随便点一下按钮就会停止报数并播报当前按的按钮,但是我不会多线程,,自己改的
public MyThread mClientThread;
public class MyThread extends Thread
{
@Override
public void run()
{

try
{
Thread.sleep(500);
}
catch (InterruptedException e)
{

e.printStackTrace();
}

}
}

使用:mClientThread = new MyThread();    
                    mClientThread.start();
                    这样延时没有反应,还是全部一起读了,哪位大神有这方面经验???
  • 写回答

2条回答 默认 最新

  • 乔小南丶 2017-02-08 09:44
    关注

    你好,暂停时可以用Thread.wait让线程等待,点击继续再唤醒。
    Thread.yield();是让步 如用到多线程可以用这个

    评论

报告相同问题?

悬赏问题

  • ¥15 matlab有关常微分方程的问题求解决
  • ¥15 perl MISA分析p3_in脚本出错
  • ¥15 k8s部署jupyterlab,jupyterlab保存不了文件
  • ¥15 ubuntu虚拟机打包apk错误
  • ¥199 rust编程架构设计的方案 有偿
  • ¥15 回答4f系统的像差计算
  • ¥15 java如何提取出pdf里的文字?
  • ¥100 求三轴之间相互配合画圆以及直线的算法
  • ¥100 c语言,请帮蒟蒻写一个题的范例作参考
  • ¥15 名为“Product”的列已属于此 DataTable