AudioTrack Android воспроизводит звуки из сырой папки

Можно ли воспроизводить файлы wav с помощью AudioTrack из папки ресурсов raw? Он пробовал много способов ссылаться на сырые файлы в моем проекте 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(); } } 

    Все в порядке с вашим кодом, вам просто нужно изменить

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

    в

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