SoundButton stopp

J

Jajobe

Erfahrenes Mitglied
14
Hallo.
Ich bin ziemlicher Neuling im programmieren.
Ich habe jetzt mal ne ganz einfache app entwickelt, die beim draufklicken auf einen button einen ton abspielt. das funktioniert auch einwandfrei. doch wie kann ich den ton wieder stoppen? Ich möchte nämlich gern den ton stoppen wenn ich nochmal auf den gleichen button klicke.
Habe auch schon gegooglelt habe aber nichts gefunden.
:biggrin:

Also den dass der Button Musik abspielt mache ich so:
audi1.setOnClickListener (new OnClickListener() {
public void onClick (View v) {
MediaPlayer mp = MediaPlayer.create(getApplicationContext(),R.raw.audir8);
mp.start();


(audi1 habe ich von der automarke)
 
Zuletzt bearbeitet:
Naja alle Methoden die der MediaPlayer hat, hast du hier:
MediaPlayer | Android Developers

Es gibt folgendes, was dir helfen könnte:

ispPlaying --> Boolean, true wenn gerade was abgespielt wird
und
stop() --->Damit stoppst du den Media player.

So damit solltest du dir eine if zusammenbasteln können, die in die ButtonClick Methode reinkommt. Dabei prüfst du einfach ob gerade was gespielt wird, dann wird gestoppt, oder ob nichts läuft, dann wird der Media Player gestartet.

Hoffe das hilft dir schon!
Gruß
 
Erst mal danke für die schnelle antwort :)
kann man des auch irgendwie reinbauen wie ich es gemacht habe?
Weil deins verstehe ich nicht so ganz :/
 
if(mp.isPlaying())
{
mp.stop();
}else
{
mp.start();
}

Ab damit in die onClick ;)

Sent from my GT-I9100 using Android-Hilfe.de App
 
  • Danke
Reaktionen: Jajobe
Hey, das wollte ich grade schreiben.
Aber genau das meinte ich.
 
  • Danke
Reaktionen: Jajobe
Danke. Werde ich gleich mal versuchen ;)
 
Zuletzt bearbeitet:
Edit:
Des habe ich dann so gemacht:
audi1.setOnClickListener (new OnClickListener() {
public void onClick (View v) {
MediaPlayer mp = MediaPlayer.create(getApplicationContext(),R.raw.audir8);
mp.start();
if(mp.isPlaying())
{
mp.stop();
}else
{
mp.start();
}

}
});

Aber wenn ich auf den Button klicke spielt es keinen Ton mehr ab.
 
Kein Wunder:
Am Anfang (Bevor der if) StarteSt du den Sound. Danach checkst du ob er spielt. Da du ihn ja gerade gestartet hast kommt raus das der mp.isPlaying und daraus folgt das der mp gestoppt wird ;)
Falls tl;dr --> Einfach das erste mp.start(); entfernen

Sent from my GT-I9100 using Android-Hilfe.de App
 
Also ich habe das mp.start(); entfernt, aber es kommt zwar jetzt wieder ein Ton :) ,aber wenn ich wieder auf den Button drücke startet der Ton nochmals, so dass also beide paralell laufen :/

audi1.setOnClickListener (new OnClickListener() {
public void onClick (View v) {
MediaPlayer mp = MediaPlayer.create(getApplicationContext(),R.raw.audir8);
if(mp.isPlaying())
{
mp.stop();
}else
{
mp.start();
}
}


});


Sorry für die vielen Fragen, bin halt absoluter Neuling :)
 
Hab mal kurz bei Android developer geschaut. Die Methode isPlaying() liefert ein True oder false zurück. Ich denke wenn du auf true prüfst wirds klappen.

if(mp.isPlaying() == true)


Hier die Beschreibung:

public boolean isPlaying ()

Added in API level 1
Checks whether the MediaPlayer is playing.

Returns
true if currently playing, false otherwise
Throws
IllegalStateException if the internal player engine has not been initialized or has been released.
 
Werde mal schauen ob es klappt :biggrin:
Vielen Dank :thumbsup:
 
Hat sich immer noch nicht geändert :(
audi1.setOnClickListener (new OnClickListener() {
public void onClick (View v) {
MediaPlayer mp = MediaPlayer.create(getApplicationContext(),R.raw.audir8);
if(mp.isPlaying() == true)
{
mp.stop();
}else
{
mp.start();
}
}


});
Habe des eingegeben :/
Was mache ich nur falsch
 
Du kreierst bei jedem button klick einen neuen media player. Deswegen mehrere sound paralel. Steck das erstellen in onCreate...

Gesendet von meinem GT-S5660 mit der Android-Hilfe.de App
 
Ich habe des jetzt alles so gemacht:
Code:
package de.jannik.motorsounds;

import android.media.MediaPlayer;
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;

public class MainActivity extends Activity {
	
	public MediaPlayer mp;
	Button audi1;
	Button audi2;
	Button audi3;
	Button dodge1;

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
	    final MediaPlayer mp = MediaPlayer.create(getApplicationContext(),R.raw.audir8);
		
		
	audi1=(Button) findViewById (R.id.audi1);
	audi2=(Button) findViewById (R.id.audi2);
	audi3=(Button) findViewById (R.id.audi3);
	dodge1=(Button) findViewById (R.id.dodge1);
	
	audi1.setOnClickListener (new OnClickListener() {
		public void onClick (View v) { 
			if(mp.isPlaying() == true)
			{
			mp.stop();
			}else
			{
			mp.start();
			}
			}

});

Aber bei Button 1 kommt Sound und wenn ich nochmals draufklicke hört er zwar auf, kann ihn aber nicht nochmals starten :/
 
Zuletzt bearbeitet von einem Moderator:
Was sagt die LogCat?
Btw: du kannst das ' == true' weglassen ;)

Sent from my GT-I9100 using Android-Hilfe.de App
 
logCat:
Wenn ich nochmal auf Button klicke:
04-09 17:46:07.060: E/MediaPlayer(1162): start called in state 64
04-09 17:46:07.060: E/MediaPlayer(1162): error (-38, 0)
04-09 17:46:07.070: E/MediaPlayer(1162): Error (-38,0)
 
Vor dem mp.start() schreib mp.prepare();
Also:
}else
{
mp.prepare();
mp.start();

Sent from my GT-I9100 using Android-Hilfe.de App
 
Dann kommt es rot unterstrichen mit vorschlag:
Sourround with try.
Wenn ich dies dann anklicke, funktioniert es immer noch nicht :/
 
Zeig den Code jetzt mal her (mit der try)

Sent from my GT-I9100 using Android-Hilfe.de App
 
Log:
04-09 18:19:08.861: D/AndroidRuntime(1285): Calling main entry com.android.commands.pm.Pm
04-09 18:19:15.121: D/dalvikvm(1285): Debugger has detached; object registry had 1 entries
04-09 18:19:16.860: D/AndroidRuntime(1304): Calling main entry com.android.commands.am.Am
04-09 18:19:17.050: D/dalvikvm(1304): Debugger has detached; object registry had 1 entries
 

Ähnliche Themen

H
  • heikoj10.1
Antworten
4
Aufrufe
642
heikoj10.1
H
znieh99
  • znieh99
Antworten
1
Aufrufe
967
znieh99
znieh99
Y
Antworten
7
Aufrufe
1.674
Yothri
Y
Monzi
Antworten
13
Aufrufe
981
Monzi
Monzi
J
  • Jusehr
Antworten
2
Aufrufe
664
Jusehr
J
Zurück
Oben Unten