페이지가 열리면 소리가 재생되도록 하고 싶은데요
 
옵티머스원, 에뮬레이터 에서 테스트 했을땐 소리가 잘 났는데
갤S에서는 안되네요..
 
에러는 위처럼 나구요
02-14 09:46:31.502: ERROR/MediaPlayer(14115): start called in state 4
02-14 09:46:31.502: VERBOSE/MediaPlayer(14115): message received msg=100, ext1=-38, ext2=0
02-14 09:46:31.502: ERROR/MediaPlayer(14115): error (-38, 0)
02-14 09:46:31.502: VERBOSE/MediaPlayer(14115): callback application
02-14 09:46:31.502: VERBOSE/MediaPlayer(14115): back from callback
02-14 09:46:31.502: ERROR/MediaPlayer(14115): Error (-38,0)
 
02-14 09:46:31.556: ERROR/AudioTrack(2331): AudioTrack::set channels[12] format[1] sampleRate[44100], framecount[8192]
02-14 09:46:31.556: VERBOSE/AudioTrack(2331): AudioTrack::set ------> streamType [3]
02-14 09:46:31.556: ERROR/AudioTrack(2331): getAudioMode[0]
02-14 09:46:31.556: ERROR/AudioTrack(2331): AudioTrack::set afSampleRate[44100] afFrameCount[2048] afLatency[47]
02-14 09:46:31.556: ERROR/AudioTrack(2331): AudioTrack::set minBufCount[2] minFrameCount[4096]
02-14 09:46:31.560: VERBOSE/AudioFlinger(2331): Track constructor name 4102, calling thread 2331
02-14 09:46:31.560: INFO/AudioR2VS(2331): [R2VS] InitR2VS initBit[0x1f]
 
파일은 분명히 제대로 읽었습니다.
 
 
읽는 소스는 다음과 같구요
  MediaPlayer mp = new MediaPlayer();
  mp = new MediaPlayer();  

  File file = new File(filepath);
  boolean isExist = file.isFile();
  Log.i(TAG, isExist+"");
 
  FileInputStream fis = null;
  fis = new FileInputStream(file);
  mp.setDataSource(fis.getFD());
  //mp.setDataSource(filepath); //참고* InputStream으로 읽어야 내부메모리에서도 읽힌다.
  mp.prepare();
  //mMp.prepareAsync();
  mp.start();
 
인데요.. 맨처음에 setDataSource에 걍 String filepath를 넣었더니 sd카드에 넣은 데이터는 소리가 나는데 내부메모리에 넣은 데이터는 소리가 안나더라구요. 그래서 FD로 바꿨더니 잘 나더군요.
 
그래서 이야 잘된다, 라고 생각하고 갤럭시S에서 테스트 했더니... 안됩니다...위에 올려놓은 로그가 뜨면서 소리가 안나요..
 
mediaplayer가 까다로운건 알고있지만.. 저게 잘 안동작할 소스는 아닌거같은데.. 왜 안되는걸까요 ㅠ?