【问题标题】:AudioTrack Android playing sounds from raw folderAudioTrack Android 从原始文件夹播放声音
【发布时间】:2012-08-29 02:58:50
【问题描述】:

是否可以从资源文件夹 raw 中播放带有AudioTrack 的 wav 文件?它尝试了很多方法来引用我的 Android 项目中的原始文件,但我遇到了很多异常。

这是我现在拥有的,但是当我按下按钮时,没有声音播放。

public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    Button buttonPlayAudioTrack = (Button) findViewById(R.id.buttonPlayAudioTrack);
    buttonPlayAudioTrack.setOnClickListener(this);

    int minBufferSize = AudioTrack.getMinBufferSize(44100, AudioFormat.CHANNEL_CONFIGURATION_MONO, 
                        AudioFormat.ENCODING_PCM_16BIT);

    audioTrack = new AudioTrack(AudioManager.STREAM_MUSIC, 44100, AudioFormat.CHANNEL_CONFIGURATION_MONO, 
                     AudioFormat.ENCODING_PCM_16BIT, minBufferSize, AudioTrack.MODE_STREAM); 
}
public void onClick(View v) {
    // TODO Auto-generated method stub
    if(v.getId() == R.id.buttonPlayAudioTrack) 
        playSound();
}

private void playSound() {
    audioTrack.play();
    int i = 0;
    int bufferSize = 512;
    byte [] buffer = new byte[bufferSize];
    InputStream inputStream = getResources().openRawResource(R.raw.piano12);
    try {
        while((i = inputStream.read()) != -1)
            audioTrack.write(buffer, 0, i);
    } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
    try {
        inputStream.close();
    } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
}

【问题讨论】:

    标签: android inputstream audiotrack


    【解决方案1】:

    ...您应该在将 PCM 内容写入缓冲区后放置 audioTrack-play-call ;)

    【讨论】:

      【解决方案2】:

      你的代码一切正常,你只需要改变

      while((i = inputStream.read()) != -1) 
      

      while((i = inputStream.read(buffer)) != -1)
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2014-03-04
        • 2011-04-21
        • 2017-01-08
        • 1970-01-01
        • 2015-02-19
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多