2011-03-19 107 views
0

考虑到我从未在今天写过一行Java,我确定我错过了一些明显的东西。无论如何,我正在开发一个使用AudioTrack类播放生成音频的Android应用程序。“无法找到符号”错误w/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更新管理器/工具/ ANT/main_ru les.xml:384:warning:'includeantruntime'was not
set,default to
build.sysclasspath = last;设置为false
可重复的构建
[javac的]编译2个源文件到/ home /电极/ ditdah/bin中/类
[javac的] /家庭/电极/ ditdah/SRC /组织/ n8fq/DitDah/DitDahActivity。的java:38:
找不到符号
[javac的]符号:构造audioTrack(INT,双,INT,INT,INT,INT)
[javac的]的位置:类android.media.AudioTrack
[javac的] audioTrack = new AudioTrack(
[javac]^
[javac] 1 error

BUILD FAILED
/opt/android-sdk-update-manager/tools/ant/main_rules.xml:384:编译失败;有关详细信息,请参阅编译器错误
输出。

那么,我错过了什么?

回答

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