考虑到我在今天之前从未写过一行Java,我确信我错过了一些明显的东西。无论如何,我正在使用一个Android应用程序,该应用程序使用AudioTrack类来播放生成的音频。
我正在导入我认为应该的所有内容:
import android.app.Activity;
import android.os.Bundle;
import android.widget.TextView;
import android.widget.Button;
import android.widget.RadioButton;
import android.widget.CheckBox;
import android.media.AudioFormat;
import android.media.AudioManager;
import android.media.AudioTrack;
在我的Activity类中,我有这个功能:
public AudioTrack toneToAudioTrack(byte samples[], int numSamples) {
final AudioTrack audioTrack = new AudioTrack(
AudioManager.STREAM_MUSIC,
sampleRate,
AudioFormat.CHANNEL_CONFIGURATION_MONO,
AudioFormat.ENCODING_PCM_8BIT,
numSamples,
AudioTrack.MODE_STATIC
);
audioTrack.write(samples, 0, numSamples);
return audioTrack;
}
当我尝试用ant编译时,我得到了这个:
编译:
[javac] /opt/android-sdk-update-manager/tools/ant/main_rules.xml:384:警告:'includeantruntime'不是
设置,默认为
build.sysclasspath =最后;设为假
可重复的建筑物 [javac]将2个源文件编译为/ home / electrode / ditdah / bin / classes
[javac] /home/electrode/ditdah/src/org/n8fq/DitDah/DitDahActivity.java:38:
找不到符号
[javac] symbol:构造函数AudioTrack(int,double,int,int,int,int)
[javac] location:class android.media.AudioTrack
[javac] audioTrack =新的AudioTrack(
[javac] ^
[javac] 1错误建筑失败
/opt/android-sdk-update-manager/tools/ant/main_rules.xml:384:编译失败;看到编译器错误
输出详情。
那么,我错过了什么?
答案 0 :(得分:0)
constructor的第二个参数应为int
final AudioTrack audioTrack = new AudioTrack(
AudioManager.STREAM_MUSIC,
(int) sampleRate,
AudioFormat.CHANNEL_CONFIGURATION_MONO,
AudioFormat.ENCODING_PCM_8BIT,
numSamples,
AudioTrack.MODE_STATIC
);