마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

audiotrack seekto 기능을 구현중에 문제점이 발생하여 질문합니다 ㅠ

0 추천
       RandomAccessFile 클래스를 이용해서 파일을 오픈한후에 seekbar를 건드리지않으면
정상적으로 소리가나오는데 seekbar를 건드려서 재생위치를 변경시에 지직거리는 소리나 심한 잡음이 들립니다.
어떠한 때는 또 잘작동이되더군요. 혹시 문제점 아시는분 조언좀 부탁드립니다^^ 데이터 처리하는 부분은 노란색 처리했습니다.
 
mPlaySeekbar.setOnSeekBarChangeListener(new OnSeekBarChangeListener(){
 
@Override
public void onProgressChanged(SeekBar seekBar, int progress,
boolean fromUser) {
// TODO Auto-generated method stub
playbackPosition = progress;
       System.out.println("test progress : "+playbackPosition);
 
}
 
@Override
public void onStartTrackingTouch(SeekBar seekBar) {
// TODO Auto-generated method stub
  Toast.makeText(getApplicationContext(), "off", Toast.LENGTH_SHORT).show();
  seekTo = true;
  //playbackPosition = mPlaySeekbar.getProgress();
  //audioTrack.flush();
}
 
@Override
public void onStopTrackingTouch(SeekBar seekBar) {
// TODO Auto-generated method stub
  if (audioTrack != null) {
  //audioTrack = null;
  //dis = null;
  audioTrack.flush();
  //playbackPosition = testtime;
  seekTo = false;
Toast.makeText(getApplicationContext(), "on", Toast.LENGTH_SHORT).show();
       int min = startTimeCount / 60;
int sec = startTimeCount % 60;
String strTime = String.format("%02d : %02d", min, sec);
// TODO Auto-generated method stub
mStartTime.setText(strTime);
   }
}
       });
/*         if ((endPosition - playPosition) < bufferSize){
        playPosition = 0;
        System.arraycopy(wavIoData, playPosition, audioout, 0, bufferSize);
        playPosition += bufferSize;
        }
               if (isVoiceCath)
               {
                 Log.d("Play Mode", "Algo on");
                 System.out.println(isAlgoMax);
                 mTest2 = VMWProcess.PlayProcess(audioout, isAlgoMax);
               }*/
        try {
        if(seekTo == true){
        dis.seek(playbackPosition);
        }
        readLen = dis.read(audioout);
System.out.println("test read 2222 : "+dis.getFilePointer());
} catch (IOException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
        audioTrack.write(audioout, 0, readLen);
        System.out.println("test track 1111 : "+audioTrack.getPlaybackHeadPosition());
일탈99 (500 포인트) 님이 2014년 10월 28일 질문

답변 달기

· 글에 소스 코드 보기 좋게 넣는 법
· 질문에 대해 추가적인 질문이나 의견이 있으면 답변이 아니라 댓글로 달아주시기 바랍니다.
표시할 이름 (옵션):
개인정보: 당신의 이메일은 이 알림을 보내는데만 사용됩니다.
스팸 차단 검사:
스팸 검사를 다시 받지 않으려면 로그인하거나 혹은 가입 하세요.
...