마스터Q&A
접속유지
가입하기
안드로이드 Q&A
최근 질문
미답변 질문
태그
사용자
질문하기
마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다.
안드로이드펍
에서 운영하고 있습니다. [
사용법
,
운영진
]
인기있는 태그
초보어플개발
(3427)
안드로이드스튜디오
(2664)
안드로이드-초보어플개발
(1333)
안드로이드-스튜디오
(1086)
도와주세요-
(995)
이미지
(970)
listview
(866)
리스트뷰
(844)
오류
(805)
레이아웃
(693)
fragment
(675)
webview
(670)
SoundPool 무한 반복 할 때 중간에 틱틱 잡음이 생깁니다..
0
추천
SoundPool을 사용해서 반복 해서 하려고 하는데 사운드가 종료 되고 다시 시작하는 그 중간 텀 때문에
틱틱 잡음이 생기는데 이 중간 텀이 생기지 않게 하는 방법은 없는가요??
android
soundpool
안왕초보
(
1,390
포인트)
님이
2014년 3월 12일
질문
Please
log in
or
register
to add a comment.
답변 달기
·
글에 소스 코드 보기 좋게 넣는 법
·
질문에 대해 추가적인 질문이나 의견이 있으면 답변이 아니라 댓글로 달아주시기 바랍니다.
표시할 이름 (옵션):
답변이 채택되거나 답변에 댓글이 달리면 이메일로 알려드립니다:
답변이 채택되거나 댓글이 달리면 이메일로 알려드립니다
개인정보: 당신의 이메일은 이 알림을 보내는데만 사용됩니다.
스팸 차단 검사:
스팸 검사를 다시 받지 않으려면
로그인
하거나 혹은
가입
하세요.
1개의 답변
+1
추천
SoundID를 활용해보세요.
(
11,920
포인트)
님이
2014년 3월 12일
답변
soundid가 뭔가요??
http://deng-i.net/1024
저도 이 사이트 참조를 했는데 load 부분이 이해가 안되서요. mRecordingFile 있는데 이거 외부에 있는 파일을 불러 들어오는것인가요??
mSoundPool = new SoundPool(1, AudioManager.STREAM_MUSIC, 0);
base_sound = new SoundPool(1, AudioManager.STREAM_MUSIC, 0);
mSoundPoolId = mSoundPool.load(c, R.raw.porsche_911_gt3_rs_basics, 1);
baseId = base_sound.load(c, R.raw.porsche_911_gt3_rs_basics, 1);
mSoundPool.play(mSoundPoolId, 1.0f, 1.0f, 0, -1, 1.0f);
mSoundPool.setOnLoadCompleteListener(new OnLoadCompleteListener() {
@Override
public void onLoadComplete(SoundPool soundPool, int sampleId,
int status) {
// TODO Auto-generated method stub
base_sound.play(baseId, 1.0f, 1.0f, 0, -1, 1.0f);
}
});
이렇게 하는거 맞나요?? 이렇게 하면 사운드가 두개씩 납니다.
그리고
base_sound.setOnLoadCompleteListener(new OnLoadCompleteListener() {
@Override
public void onLoadComplete(SoundPool soundPool, int sampleId,
int status) {
// TODO Auto-generated method stub
base_sound.play(baseId, 1.0f, 1.0f, 0, -1, 1.0f);
}
});
이렇게 하면 사운드가 안나오고요...용량도 100KB 미만이고 시간도 1초 밖에 안되는데
http://developer.android.com/reference/android/media/SoundPool.html
load부분 살펴보시면 파라메터 설명이 나옵니다.
간단하게 예를들면
if (로드한적이 있는지 검사) {
//로드한적있다
soundBeep = 해쉬맵에서 가져옴
stopId = soundManager.play(soundBeep, 1f, 1f, 1, 0, 1f);
} else {
//없다
soundBeep = soundManager.load(con, num, 1);
//해쉬맵에 저장
Hash().put(num, soundBeep);
}
저..죄송합니다만...이해가 안되서 ㅜㅜ
1가지 사운드를 계속 반복을 하는건데...기존 자료들을 보니 여러가지 사운드를 낼 때 해쉬맵을 사용하는 것 뿐이라서 ㅜㅜ
여러가지 사운드를 낼때 사용한다라기 보다는
음원을 사용하기위해서는 메로리에 로드해야 하는데 시간이 걸리는거죠
그래서 끊어지는듯한 느낌이 난다고 생각되고요
이걸막기위해서는 자주쓰는 음원을 리리스 하지 않고 보관해두었다가
play하는겁니다.
그리고 해쉬맵이 중요한게 아니라 load 와 play가 중요하다고 생각합니다.
Please
log in
or
register
to add a comment.
...