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 android-developers@googlegroups.com
To unsubscribe from this group, send email to
android-developers+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en

Reply via email to