MediaRecorder录制时你怎么做?

时间:2015-03-27 10:26:39

标签: java android

当用户按下按钮时,我启动了我的MediaRecorder:

recorder.start();

当用户按下另一个按钮时,我用recorder.stop();停止它。我该怎么做:

while(recorder is recording){
    //do stuff here
}

我也有recorder.setMaxDuration(5000);

有没有简单的方法来完成这项任务?

2 个答案:

答案 0 :(得分:1)

我已经编写了一个简单的例子,说明你正在尝试使用swing做什么。 (我从未做过任何Android编程,但希望这些想法可以帮助你。)

点击开始将开始一个新线程&每秒打印“做某事”。 单击停止将停止该线程打印。

enter image description here

<强> GUI

public class MyGui {

static JButton startButton;
static JButton stopButton;
static RecorderThread thread;

public static void main(String[] args) throws ParseException {

        startButton = new JButton("Start");
        startButton.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent arg0) {
                thread = new RecorderThread();
                thread.start();
                startButton.setEnabled(false);
                stopButton.setEnabled(true);
            }
        });

        stopButton = new JButton("stop");
        stopButton.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent arg0) {
                thread.kill();
                startButton.setEnabled(true);
                stopButton.setEnabled(false);
            }
        });

        JFrame frame = new JFrame("Media Recorder");
        JPanel panel = new JPanel();
        panel.add(startButton);
        panel.add(stopButton);
        frame.getContentPane().add(panel);
        frame.setSize(100, 100);
        frame.setVisible(true);
    }

}

<强>发

public class RecorderThread extends Thread {

    volatile boolean isRunning = true;

    public void kill(){
        isRunning = false;
    }

    /* (non-Javadoc)
     * @see java.lang.Thread#run()
     */
    @Override
    public void run() {
        while(isRunning){
            System.out.println("Do stuff");
            try {
                Thread.sleep(1000);
            } catch (InterruptedException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }
    }

}

一切顺利!

答案 1 :(得分:0)

一旦介质记录器启动了您要执行的代码,就应该创建一个Thread。最后,当用户按下结束按钮时,您应该更改条件控制以便让线程完成。