Я видел много постов о том, что звук остановился рано. Это не моя проблема. Моя проблема в том, что у меня есть эти 25 звуков и работает. Когда телефон встряхивается, он говорит, отображает текст и имеет анимацию, поэтому человек выглядит так, как будто говорит. Сначала все работает отлично. Единственный способ воспроизвести проблему, обнаруженную моим клиентом, - это несколько раз встряхнуть ее, а затем щелкнуть назад. Встряхиваясь в нем и встряхивая много раз, затем снова нажимая. Когда я снова несколько раз встряхиваюсь, он работает, и вдруг все звуки исчезают. Иногда можно работать, но если вернуться туда и обратно, он обычно перестает издавать звук все вместе. Все остальное работает как надо. Кто-нибудь сталкивался с этим раньше? Любая помощь будет оценена.
public class Ask extends Activity{
private SensorManager mSensorManager;
private ShakeEventListener mSensorListener;
String[] answer;
int possibleAnswers, randomAnswer, talkRun=0, last=-1;
int shake0;
long lastClick;
private MediaPlayer mp, sound0;
Context context;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.ask);
Intent type = getIntent();
lastClick = type.getLongExtra("lastClick", 0);
context=this;
final Random generator = new Random();
possibleAnswers = 1;
answer = new String[possibleAnswers];
answer[0]="***Coughing***";
//Sounds
setVolumeControlStream(AudioManager.STREAM_MUSIC);
mp = MediaPlayer.create(this, R.raw.askbud);
mp.start();
mSensorListener = new ShakeEventListener();
mSensorManager = (SensorManager) getSystemService(Context.SENSOR_SERVICE);
mSensorManager.registerListener(mSensorListener,
mSensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER),
SensorManager.SENSOR_DELAY_UI);
final TextView tv = (TextView)findViewById(R.id.answer);
mSensorListener.setOnShakeListener(new ShakeEventListener.OnShakeListener() {
public void onShake() {
if (System.currentTimeMillis() - lastClick > 900) {
lastClick = System.currentTimeMillis();
randomAnswer = generator.nextInt(possibleAnswers);
if(last==randomAnswer)
randomAnswer = generator.nextInt(possibleAnswers);
animation();
if(randomAnswer==0){
if(shake0>=1){
sound0.reset();
}
shake0++;
sound0 = MediaPlayer.create(context, R.raw.coughing);
try {
sound0.prepare();
} catch (IllegalStateException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
sound0.start();
}
});
}
@Override
protected void onResume() {
super.onResume();
mSensorManager.registerListener(mSensorListener,
mSensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER),
SensorManager.SENSOR_DELAY_UI);
}
@Override
protected void onStop() {
mSensorManager.unregisterListener(mSensorListener);
super.onStop();
}
}
Просто небольшое дополнение к проблеме. После того, как я не вижу звука, он продолжает появляться даже после закрытия и повторного открытия приложения.