버튼이 하나 뿐인 Android 앱이 있습니다. 버튼을 클릭하면 앱이 SoundPool에로드 된 사운드를 재생 (루핑)하기 시작합니다. 버튼을 다시 클릭하면 사운드가 중지 된 다음 다시 시작됩니다.SoundPool "AudioFlinger가 트랙을 만들지 못했습니다. 상태 : -12"
하지만 문제는 소리가 격주에만 재생된다는 것입니다.
- 클릭 1 시간 -> 사운드는
- 클릭 2 재생 시간 시작 -> 사운드 정지 그러나 다시 시작되지 않습니다
- 클릭 3 시간 -> 소리가
- 클릭 4 시간 재생을 시작 - > 소리가 중지하지만, 등등
- 와 ... 재생 시작되지 않는 소리가 재생되지 않는 경우
이 오류는 로그 캣에 나타납니다
E/AudioTrack: AudioFlinger could not create track, status: -12
E/SoundPool: Error creating AudioTrack
루핑 (-1에서 0으로 변경)을 제거하면 모든 것이 완벽하게 작동합니다!
제가 연주하는 소리는 MP3 파일, 크기 71.6 KiB입니다.
Android 4.1.2 (작동하지 않음)를 실행하는 Sony Xperia U에서 테스트했습니다. 하지만 내 Huawei Honor 6 (Android 6.0)에서는 루핑을 포함하여 모든 것이 작동합니다!
내가 뭘 잘못하고 있니?
여기 내 코드입니다 :
import android.media.AudioManager;
import android.media.SoundPool;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
public class MainActivity extends AppCompatActivity {
private int lastStreamId = 0;
private int soundID;
private SoundPool soundPool;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
soundPool = new SoundPool(1, AudioManager.STREAM_MUSIC, 0);
soundID = soundPool.load(this, R.raw.sound01, 1);
Button button = (Button) findViewById(R.id.button);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
soundPool.stop(lastStreamId);
lastStreamId = soundPool.play(soundID, 1, 1, 1, -1, 1);
}
});
}
}
편집 :
내가 여기에 원래 소리를 업로드 할 수 아니지만, 여기에 같은 일을 또 다른 소리입니다. 을 제외하고 이제는 첫 번째 클릭에서만 의 사운드가 재생됩니다.; 다음과 같은 클릭 만하면 자동으로 위와 같은 오류가 발생합니다.
소리
은 여기에 있습니다 : sound01.mp3
'sound01'을 게시 할 수 있습니까? – azizbekian
질문 편집 : – TuomasK