【问题标题】:How to record audio file using timer如何使用计时器录制音频文件
【发布时间】:2016-10-12 13:42:36
【问题描述】:

嗨,我是 android 新手,在我的应用程序中,我必须使用计时器来录制音频,如下图所示,使用我的下面我可以录制音频,但是如何在计时器的帮助下做到这一点,请帮我一些忙

我的代码:-

 @Override
    public void onClick(View v) {

        switch (v.getId()) {

            case R.id.record_button:
             startRecording()
                break;

            case R.id.stop_button:
                break;

        }
    }


    private void startRecording() {

        try {

            mRecorder = new MediaRecorder();
            mRecorder.setAudioSource(MediaRecorder.AudioSource.MIC);
            mRecorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);
            mRecorder.setOutputFile(mFileName);
            mRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);
            mRecorder.prepare();
            mRecorder.start();

        } catch (Throwable t) {
            t.printStackTrace();
        }
    }

    private void stopRecording() {

        mRecorder.stop();
        mRecorder.release();
        mRecorder = null;
    }

【问题讨论】:

    标签: android audio-recording countdowntimer


    【解决方案1】:

    只需在startRecording 中启动一个计时器并在stopRecording 中停止它。见:https://stackoverflow.com/a/3734070/2324204

    【讨论】:

    • @AbhiRam 那么你应该告诉人们什么适合你的应用程序......“使用计时器录制音频”并没有任何意义.
    • 这有什么问题我想用计时器录制音频
    • 这里少了什么意思?
    • 你大概知道你想要什么,但你没有很好地解释它。短语“使用计时器录制音频”没有多大意义,因为您使用MediaRecorder 录制音频...您的意思是要在录制音频时显示计时器吗? ...您的意思是要录制一段固定时间的音频并在计时器达到零时停止? ...或者你的意思完全是我没有想到的其他东西。除非你能理解你想要做什么,否则人们将无法提供帮助。
    【解决方案2】:

    您可以使用 Android 中已经存在的Chronometer

    注意:Chronometer 是一个扩展 TextView 的小部件,因此请将当前的 TextView 替换为 Chronometer。

    您的代码示例如下:

    //....
        Chronometer simpleChronometer = (Chronometer) findViewById(R.id.simpleChronometer);
    
    //...
    
    
    
    private void startRecording() {
    
        try {
    
            mRecorder = new MediaRecorder();
            mRecorder.setAudioSource(MediaRecorder.AudioSource.MIC);
            mRecorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);
            mRecorder.setOutputFile(mFileName);
            mRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);
            mRecorder.prepare();
            mRecorder.start();
            simpleChronometer.start(); // start a chronometer
            //simpleChronometer.setFormat("Time Running - %s"); // set the format  for a chronometer
    
        } catch (Throwable t) {
            t.printStackTrace();
        }
    }
    
    private void stopRecording() {
    
        mRecorder.stop();
        mRecorder.release();
        mRecorder = null;
        simpleChronometer.stop();
    }
    

    如果您想手动执行操作,可以使用 Stopwatch 类。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-08-15
      • 1970-01-01
      • 1970-01-01
      • 2011-08-07
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多