Ich weiß, das ist eine sehr häufige Frage. Jedoch habe ich Probleme, den Ton in meiner Anwendung zu spielen, indem ich MediaPlayer Klasse trotz meiner Logik richtig verwende. Momentan habe ich in meiner Anwendung Funktionen zur Erkennung von Verwacklungen. Jedes Mal, wenn das Gerät geschüttelt wird, sollte es einen Ton wiedergeben. Unten ist mein Code:Android MediaPlayer :: Probleme
public class MainActivity extends AppCompatActivity {
private SensorManager mSensorManager;
private Sensor mAccelerometer;
private ShakeDetector mShakeDetector;
private SoundManager mSoundManager;
private TextView xText;
private Context context;
private AudioPool ap;
int id1,id2;
File directory;
MediaPlayer player, mPlayer;
AudioCollective ac;
Lagu la;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
xText = (TextView)findViewById(R.id.xText);
mSensorManager = (SensorManager) getSystemService(Context.SENSOR_SERVICE);
mAccelerometer = mSensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER);
mShakeDetector = new ShakeDetector();
la = new Lagu();
la.initLagu(MainActivity.this);
mShakeDetector.setOnShakeListener(new ShakeDetector.OnShakeListener() {
@Override
public void onShake(int count) {
la.playLagu();
xText.setText("Shake:"+count);
}
});
}
public class Lagu {
MediaPlayer mPlayer;
public Lagu(){
mPlayer = new MediaPlayer();
}
public void initLagu(Context theContext){
mPlayer.create(theContext, R.raw.na);
}
public void playLagu(){
mPlayer.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {
@Override
public void onPrepared(MediaPlayer mp) {
mp.start();
}
});
}
}
Das Problem ist die Anwendung NICHT das Telefon geschüttelt wird der Ton jedes Mal spielen. Nicht einmal einmal wird die Anwendung den Ton abspielen. FYI, das Format des Songs ist MP3. Jemand hier bitte sagen Sie mir, was mit meiner Bewerbung falsch läuft? Ihre Hilfe wird geschätzt!
Überprüfen Sie das Protokoll für Warnungen oder Fehler, manchmal diese Klassen können sich von Gerät zu Gerät unterschiedlich verhalten. – Pievis
Hallo, es werden keine Fehler oder Warnungen im Log angezeigt. Es bedeutet, dass die Logik korrekt ist. Aber ich weiß immer noch nicht, warum es den Ton nicht spielt. – JackPowell