gpt4 book ai didi

android - AudioFormat 在 android.media.AudioFormat 中不公开

转载 作者:行者123 更新时间:2023-11-29 19:32:59 30 4
gpt4 key购买 nike

我正在尝试开发像 Shazam 这样的 Android 应用程序。我搜索了 Shazam 在 Google 上的工作方式,我找到了 this to read .如您所见,它首先录制歌曲。但是我在录制代码时遇到了问题,因为 Android Studio 显示该代码带有红色下划线的错误。

这是我的代码:

private AudioFormat getFormat() {
float sampleRate = 44100;
int sampleSizeInBits = 16;
int channels = 1; //mono
boolean signed = true; //Indicates whether the data is signed or unsigned
boolean bigEndian = true; //Indicates whether the audio data is stored in big-endian or little-endian order
return new AudioFormat(sampleRate, sampleSizeInBits, channels, signed, bigEndian);
}

用于格式化录音。当我将该代码复制到主要 Activity 中时,它显示如下错误:

enter image description here

当我将光标悬停在 on 错误上时,它说“AudioFormat 在 android.media.AudioFormat 中不公开。无法从外部包访问”。我该如何解决?我关注的链接中的代码是否错误?我一直在搜索 Android 的教程代码来开发类似 Shazam 应用程序的东西。

为 Andrew Cheong 的回答编辑

我知道为什么因为 Cheong 的回答所以我这样使用

private AudioFormat getFormat() {
float sampleRate = 44100;
int sampleSizeInBits = 16;
int channels = 1; //mono
boolean signed = true; //Indicates whether the data is signed or unsigned
boolean bigEndian = true; //Indicates whether the audio data is stored in big-endian or little-endian order

return new AudioFormat.Builder().setSampleRate(Math.round(sampleRate)).build();
}

但是正如您在代码中看到的那样,我只能找到 setSampleRate() 来设置采样率。我找不到其他方法来设置 sampleSizeInBits、channels、signed 和 bigEndian。我不知道如何设置它们。如何设置其余变量?

最佳答案

如果你看the documentation for AudioFormat ,您可能会注意到它有一个“生成器类”。

class   AudioFormat.Builder
Builder class for AudioFormat objects.

Builder class for AudioFormat objects. Use this class to configure and create an AudioFormat instance. By setting format characteristics such as audio encoding, channel mask or sample rate, you indicate which of those are to vary from the default behavior on this device wherever this audio format is used. See AudioFormat for a complete description of the different parameters that can be used to configure an AudioFormat instance.

这是 build()方法。

这是应用程序设计中的一种“模式”,如果你不是设计模式的学生,它有点抽象/难以理解,但是here's a relevant article无论如何。

关于android - AudioFormat 在 android.media.AudioFormat 中不公开,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39630215/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com