首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >可以使用麦克风录制一次声音,但不能再次启动麦克风

可以使用麦克风录制一次声音,但不能再次启动麦克风
EN

Stack Overflow用户
提问于 2012-04-04 23:40:36
回答 1查看 629关注 0票数 1

我正在使用CMU sphinx库来录制声音。当我开始java应用程序时,我只分配了Recognizer和Configuration Manager一次,如下所示:

代码语言:javascript
复制
        cm = new ConfigurationManager(soundPart.class.getResource("hellongram.config.xml"));
        recognizer = (Recognizer) cm.lookup("recognizer");
        recognizer.allocate();

此外,我在我的应用程序中有一个录音按钮。当用户点击它时,我使用下面的代码来录制声音:

代码语言:javascript
复制
    Microphone microphone = (Microphone)MR.sp.cm.lookup("microphone");
    if (!microphone.startRecording()) {
        System.out.println("Cannot start microphone.");
        MR.sp.recognizer.deallocate();

        System.exit(1);
    }
    //MR.sp.pleaseStartSpeaking.setVisible(true);
    while(true){
    Result result = MR.sp.recognizer.recognize();
    if(result!=null){
        String resultText = result.getBestFinalResultNoFiller();
        MR.sp.lblYouSearched.setVisible(true);
        MR.sp.lblNewLabel.setVisible(true);
        MR.sp.lblNewLabel.setText(resultText);
        MR.textQuery = resultText.toLowerCase();
        break;
    }
    }

这是我第一次这么做的时候用到的。但是,如果用户再次单击record按钮,则会抛出错误"Cannot start microphone“。我在这里做错了什么。WHy我不能第二次拿到麦克风吗

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-04-05 00:01:36

您可能需要查看麦克风的RecordingThread here,并重新阅读获取代码here的页面,因为您使用的代码和您想要做的事情之间的区别是,您使用的代码不会启动和停止麦克风,而是在持续记录。RecordingThread看起来就是您想要的东西,因为您可以很容易地调用start()和stop()来获得您想要的东西。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10014537

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档