AudioTrack.play() - 无法解析符号' play' (Android Studio)

时间:2014-05-07 17:55:34

标签: android compiler-errors android-studio audiotrack

新的Android开发人员,请按照http://audioprograming.wordpress.com/2012/10/18/a-simple-synth-in-android-step-by-step-guide-using-the-java-sdk/

上的音频编程教程进行操作

我遇到的问题是我的AudioTrack对象调用play()无法解析/编译。我注意到,如果我将方法调用放在条件中,它就可以解决了。这里发生了什么?这一切都在一个Thread中进行,顺便说一句......

更新,已解决: 问题是AudioTrack实例化发生在Thread声明中,而不是在Thread的run()方法中。在run()方法中移动代码解决了这个问题。谢谢你的建议...

//calculate the size of buffer we need for audiotrack based on sample rate...
int buffsize = AudioTrack.getMinBufferSize(
    sr,  //int 44100
    AudioFormat.CHANNEL_OUT_MONO,
    AudioFormat.ENCODING_PCM_16BIT);

//create an audiotrack object.
AudioTrack myTrack = new AudioTrack(
    AudioManager.STREAM_MUSIC,
    sr,
    AudioFormat.CHANNEL_OUT_MONO,
    AudioFormat.ENCODING_PCM_16BIT,
    buffsize,
    AudioTrack.MODE_STREAM);

//start audio
myTrack.play(); //cannot resolve symbol 'play'
if(1) {
    myTrack.play(); //no problem resolving symbol 'play'
}

我尝试过清理,重建,重新启动gradle,然后重新启动Android Studio ......没有骰子。

任何建议都会非常感激,我意识到我很可能会遗漏一些基本的东西......谢谢!

编译器输出:

Error:Error:line (41)<identifier> expected
Error:Error:line (53)illegal start of type
Error:Error:line (53)<identifier> expected
Error:Error:line (61)<identifier> expected
Error:Error:line (62)<identifier> expected

0 个答案:

没有答案