App spielt mp3.Datei dauerhaft ab.

  • 2 Antworten
  • Letztes Antwortdatum
A

Android_DEV

Ambitioniertes Mitglied
1
Moin,
wenn ich die App starte ohne irgendwie das Smartphone in irgendeine Richtung zu bewegen wird die mp3.datei abgespielt.
Normalerweise soll die mp3.datei nur dann abgespielt werden, wenn das Smartphone in X-Richtung bewegt wird. Kann man das im Code einfach einstellen oder muss ich eine neue Methode verwenden ?

Hier noch Code:

public class MainActivity extends ActionBarActivity implements SensorEventListener {

Sensor sensor;
private SensorManager sm;
TextView displayReading;
MediaPlayer mPlayer;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
sm = (SensorManager)getSystemService(SENSOR_SERVICE) ;
sensor=sm.getDefaultSensor(Sensor.TYPE_ACCELEROMETER);
sm.registerListener(this,sensor, SensorManager.SENSOR_DELAY_NORMAL);
displayReading=(TextView) findViewById(R.id.display_reading);
mPlayer = MediaPlayer.create(this, R.raw.sound);

}

@Override
public boolean onCreateOptionsMenu(Menu menu) {

// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml.
int id = item.getItemId();
if (id == R.id.action_settings) {
return true;
}
return super.onOptionsItemSelected(item);
}
@Override
public void onSensorChanged(SensorEvent sensorEvent) {
displayReading.setText("X"+sensorEvent.values[0]+"\nY"+sensorEvent.values[1]+"\nZ"+sensorEvent.values[2]);
if(sensorEvent.values[0]>10);
{
mPlayer.start();
}
}
@Override
public void onAccuracyChanged(Sensor sensor, int i) {
}
}

Danke im voraus,
Android_DEV

:laugh:
 
Hey, das kann verschiedene Gründe haben. Vielleicht ist der Sensor zu "genau" eingestellt, bzw. liefert Werte die falsch interpretiert werden.
Was zeigt denn dein displayReading Text zur Laufzeit an? Ggf müsst du für die Ausgabe die Werte noch casten (also in "String-Form" umwandeln)...
Generell ist meiner Erfahrung nach ein "start" (bzw. "run)-Aufruf immer etwas wo man besonderes Augenmerk drauf legen sollte. Vermutlich fehlt noch ein "stop" Aufruf, der das Programm vor unsinnvollen Ausführungen bewahrt. :D

Wenn du [ C O D E ] *dein Quellcode* [ / C O D E ] schreibst, wird dein Code hier schöner angezeigt. Macht es dann ein bisschen leichter zu lesen ;)
 
Danke,
ich wird mal nach einem stop-aufruf googlen, mal sehen was sich findet.

displayReading.setText("X"+sensorEvent.values[0]+"\nY"+sensorEvent.values[1]+"\nZ"+sensorEvent.values[2]);

Ich vermute jedoch auch, dass es an DisplayReading.setText liegt.
Ich habe schon einiges ausprobiert aber oft konnte die app nicht starten, beispielsweise wenn ich in die eckige Klammer ( \nz+sensorEvent.values[] ) 9 geschrieben hab.

mfg

-Android_DEV :)
 

Ähnliche Themen

koje71
Antworten
1
Aufrufe
1.120
swa00
swa00
D
Antworten
3
Aufrufe
705
jogimuc
J
E
Antworten
1
Aufrufe
2.396
markus.tullius
markus.tullius
Zurück
Oben Unten