带有AudioTrack的“找不到符号”错误

时间:2011-03-19 05:01:06

标签: java android

考虑到我在今天之前从未写过一行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:编译失败;看到编译器错误
  输出详情。

那么,我错过了什么?

1 个答案:

答案 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
);