【问题标题】:Can i check default Audio encoder?我可以检查默认音频编码器吗?
【发布时间】:2012-08-04 03:19:11
【问题描述】:

我在音频编码器上遇到问题。我使用 MediaRecorder 录制声音。但是,我发现我的设备必须使用默认的音频编码器才能成功录制语音。

如何查看默认音频编码器的类型??

谢谢。

更新:

private MediaRecorder mRecorder = null;
public void startRecording(String aOutputFileName, int aOutputformat, int       aAudioEncoder) 
{
    if(null == mRecorder){
        mRecorder = new MediaRecorder();
        mRecorder.setAudioSource(MediaRecorder.AudioSource.MIC);
        mRecorder.setOutputFormat(aOutputformat);
        mRecorder.setOutputFile(aOutputFileName);
        mRecorder.setAudioEncoder(aAudioEncoder);

        try {
            mRecorder.prepare();
            mRecorder.start();
        } 
        catch (IOException e) {
            e.printStackTrace();
            Log.e(LOG_TAG, "prepare() failed");
        }

    }
}

调用函数:

mVoiceRecorder.startRecording(mFileName, MediaRecorder.OutputFormat.THREE_GPP, MediaRecorder.AudioEncoder.DEFAULT);

【问题讨论】:

  • 甚至还有 AudioCodec Type: DEFAULT 在任何情况下都可以使用。 developer.android.com/reference/android/media/…
  • 您尝试使用 MediaRecorder.OutputFormat.DEFAULT & MediaRecorder.AudioEncoder.DEFAULT ;编码器和输出格式必须兼容。
  • 我知道它有效。我只想知道默认编码。

标签: android audio voice encoder


【解决方案1】:

问题是 android 应该支持所有设备上的某些编解码器,但从未发生过。我遇到了这个问题,并发布了一个问题here,让您了解我如何克服它。

每个设备都应该能够使用 AudioEncoder.AMR_NB 或 AudioEncoder.DEFAULT,但事实并非如此。您最好的选择是 IMO 循环遍历 AudioEncoder 类中可用的编码器,并测试编解码器是否在 prepare() 或 start() 上失败。如果是,则增加一个计数器并继续循环。在我的情况下,我使用 ErrorListener 来捕获错误或成功并将默认编码器常量设置为共享设置。

【讨论】:

    【解决方案2】:

    您可以通过以下方式指定所需的音频编解码器:

    MediaRecorder.setAudioEncoder()

    所有 Android 设备都至少支持 these codecs,因此请选择您想要的。

    【讨论】:

    • 我试试 AMR_WB。但是,即使版本 od android 是 4.0.4,我的设备也不支持它
    • 这听起来很奇怪。您正在开发哪种设备?您收到的一些错误日志和 sourcecode-sn-ps 将有助于解决问题。对于您的问题描述,我只能说,Android 支持此处列出的所有编解码器:developer.android.com/guide/appendix/media-formats.html 如果您的设备不是这种情况,它可能是一些奇怪的非标准 Android 设备、自定义 ROM 或特殊开发者版本。但是我敢打赌 API 的使用有问题。
    • 我的设备是中国工厂制造的。没有品牌名称。我不能告诉你设备信息,因为我也不知道。没错,我的设备不是标准的 Android 设备。有没有办法检查默认编码?
    • 如果developer.android.com/reference/android/media/… 不起作用,我不知道有关录制的任何内容应该如何工作。
    • 如果您需要具体帮助,请从 logcat 发布源代码 sn-ps 和 sn-ps。
    猜你喜欢
    • 2010-12-02
    • 1970-01-01
    • 2018-10-01
    • 1970-01-01
    • 2022-09-29
    • 1970-01-01
    • 1970-01-01
    • 2023-03-09
    • 2011-01-06
    相关资源
    最近更新 更多