J'écris actuellement une application android et c'est la première fois que je l'ai fait. donc je suis nouveau au studio android. En regardant d'autres messages ici et en ligne. J'essaie d'obtenir du son pour en sortir. J'ai ajouté dans MediaPlayer et mis mes fichiers audio dans/res/raw, cependant quand j'essaie d'exécuter mon application, il s'est écrasé.L'ajout dans MediaPlayer bloque mon application - Impossible de sortir le son
package com.example.myfirstapp;
import android.media.MediaPlayer;
import android.os.Bundle;
import android.os.Handler;
import android.support.v7.app.ActionBarActivity;
import android.view.MotionEvent;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
import net.objecthunter.exp4j.Expression;
import net.objecthunter.exp4j.ExpressionBuilder;
import static com.example.myfirstapp.R.id.fourfivesix;
import static com.example.myfirstapp.R.id.operators;
//import net.objecthunter.exp4j.Expression;
//import net.objecthunter.exp4j.ExpressionBuilder;
public class MainActivity extends ActionBarActivity {
private int[] operatorButtons = {operators};
private int[] numericButtons = {R.id.onetwothree, fourfivesix, R.id.seveneightninezero};
private boolean lastNumeric, stateError;
private TextView txtScreen;
private static final int TAP_TIMEOUT = 400;
MediaPlayer one = MediaPlayer.create(this, R.raw.one);
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// Find the TextView
this.txtScreen = (TextView) findViewById(R.id.txtScreen);
// Find and set OnClickListener to numeric buttons
// setNumericOnClickListener();
// Find and set OnClickListener to operator buttons, equal button and decimal point button
// setOperatorOnClickListener();
Button onetwothree = (Button) findViewById(R.id.onetwothree);
onetwothree.setOnTouchListener(new View.OnTouchListener() {
Handler handler = new Handler();
int numberOfTaps = 0;
long lastTapTimeMs = 0;
long touchDownMs = 0;
@Override
public boolean onTouch(View v, MotionEvent event) {
switch (event.getAction()) {
case MotionEvent.ACTION_DOWN:
touchDownMs = System.currentTimeMillis();
break;
case MotionEvent.ACTION_UP:
handler.removeCallbacksAndMessages(null);
if ((System.currentTimeMillis() - touchDownMs) > 1000) {
//it was not a tap
numberOfTaps = 0;
lastTapTimeMs = 0;
break;
}
if (numberOfTaps > 0
&& (System.currentTimeMillis() - lastTapTimeMs) < 1000) {
numberOfTaps += 1;
} else {
numberOfTaps = 1;
}
lastTapTimeMs = System.currentTimeMillis();
if (numberOfTaps == 1) {
handler.postDelayed(new Runnable() {
@Override
public void run() {
if (txtScreen.getText().toString() == "") {
txtScreen.setText("1");
one.start();
} else txtScreen.append("1");
}
}, 1000);
}else if (numberOfTaps == 2) {
handler.postDelayed(new Runnable() {
@Override
public void run() {
if (txtScreen.getText().toString() == "") {
txtScreen.setText("2");
} else txtScreen.append("2");
}
}, 1000);
} else if (numberOfTaps == 3) {
if (txtScreen.getText().toString() == "") {
txtScreen.setText("3");
} else txtScreen.append("3");
}
}
return false;
}
});
Ci-dessus les parties pertinentes de mon code. Je crée mon lecteur multimédia appelé un en haut, puis j'essaie de l'appeler au besoin pour utiliser one.start()
, y a-t-il autre chose que j'ai besoin d'ajouter dans mon code pour que cela fonctionne?
Mon application fonctionnait correctement avant d'ajouter le code MediaPlayer.
can u plz ajouter le chat log ..! – Shobhit
Salut, le logcat ne montre rien, tout ce que je reçois sur l'émulateur est un message disant que mon application s'est arrêtée. Ai-je besoin d'ajouter quelque chose dans mon code pour que le logcat affiche des informations? – benjano