Once you address the file not found issue, you will discover that there is currently no API that allows you to read in audio files and decode them into a format that AudioTrack understands. Try MediaPlayer instead unless you really need to work at the sample level.
On Sep 6, 6:52 pm, melo <[email protected]> wrote: > Hi all > I'm an android starter > I tused AudioTrack to play music > But it just tell me filenotfoundexeception > I try to play mp3 wav ogg (all in raw dir) > I've no idea where is wrong? > here are my code ~ > Could any one tell me why? > TKS in advance :) > > public class mainActivity extends Activity > { > private static final String Tag = "audioRecorder"; > private static final boolean log = true; > > AudioTrack track = null; > > /** Called when the activity is first created. */ > @Override > public void onCreate(Bundle savedInstanceState) > { > super.onCreate(savedInstanceState); > setContentView(R.layout.main); > > //if(AudioTrack.MODE_STATIC != mode && AudioTrack.MODE_STREAM ! > = mode) > //throw new InvalidParameterException(); > > //String audioFilePath = "R.raw.music"; > long fileSize = 0; > long bytesWritten = 0; > int bytesRead = 0; > int bufferSize = 0; > byte[] buffer; > //AudioTrack track = null; > int sampleRateHz = 8000;//22050 > int audioFormat = AudioFormat.CHANNEL_CONFIGURATION_MONO; > //int audioFormat = AudioFormat.CHANNEL_CONFIGURATION_STEREO; > //int audioEncodingFormat= MediaRecorder.AudioEncoder.AMR_NB; > int audioEncodingFormat= AudioFormat.ENCODING_PCM_16BIT; > //int audioEncodingFormat= AudioFormat.ENCODING_PCM_8BIT; > //int mode = AudioTrack.MODE_STATIC; > int mode = AudioTrack.MODE_STREAM; > > File audioFile = new File("R.raw.test.ogg"); > fileSize = audioFile.length(); > > if(log)Log.d(Tag,"Buffer size("+ mode +")"); > if(AudioTrack.MODE_STREAM == mode) > bufferSize = > AudioTrack.getMinBufferSize(sampleRateHz,audioFormat,audioEncodingFormat); > else //AudioTrack.MODE_STATIC > bufferSize = (int)fileSize; > > buffer = new byte[(int)bufferSize]; > > if(log)Log.d(Tag,"track setting"); > track = new > AudioTrack(AudioManager.STREAM_MUSIC,sampleRateHz, > audioFormat,audioEncodingFormat, > bufferSize,mode); > > // in stream mode, > // 1. start track playback > // 2. write data to track > > if(AudioTrack.MODE_STREAM == mode) > { > if(log)Log.d(Tag,"MODE_STREAM:track.play()"); > track.play(); > } > FileInputStream audioStream = null; > try{ > audioStream = new FileInputStream(audioFile);//"R.raw.music" > }catch(FileNotFoundException e) { > e.printStackTrace(); > Log.e(Tag,"Error:" + e.toString()); > } > > if(log)Log.d(Tag,"audioStream read"); > while(bytesWritten < fileSize) > { > try > { > bytesRead = audioStream.read(buffer,0,bufferSize); > }catch(IOException e){ > Log.e(Tag,"Error:" + e.toString()); > } > if(log)Log.d(Tag,"track write"); > bytesWritten += track.write(buffer,0,bytesRead); > } > // in static mode, > // 1. write data to track > // 2. start track playback > > if(AudioTrack.MODE_STATIC == mode) > { > if(log)Log.d(Tag,"MODE_STATIC:track.play()"); > track.play(); > } > > } > } -- You received this message because you are subscribed to the Google Groups "Android Developers" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/android-developers?hl=en

