mediaplayer stopt bei Lautstärkeänderung

  • Antworten:6
Jaaaaakob
  • Forum-Beiträge: 21

06.12.2013, 09:57:49 via Website

Hey Leute,

ich habe in meiner App lade ich einen Musik Stream, starten und pausieren funktioniert gut,
jedoch wenn man während des hörens an den hardware lautstärke tasten rum drückt stoppt der stream

gibt es eine möglichkeit das zu umgehen, das es nicht abbricht sondern wie gewollt auch die lautstärke sich ändert

1// laden des Streams
2mp=MediaPlayer.create(getApplicationContext(),Uri.parse("LINK"));
1// abspielen und pausieren
2mp.start();
3 mp.pause();

danke

Antworten
Michele
  • Forum-Beiträge: 1.525

06.12.2013, 10:30:18 via Website

Hallo.

Zeige uns bitte bisschen mehr von deinem Code.


LG

Jaaaaakob

Antworten
Jaaaaakob
  • Forum-Beiträge: 21

06.12.2013, 17:33:12 via Website

1public class RadioActivity extends Activity {
2private Context context;
3public Thread laden;
4private int count = 0;
5private MediaPlayer mp;
6ProgressDialog pDialog;
7ProgressDialog pDialog2;
8 @Override
9 protected void onCreate(Bundle savedInstanceState) {
10 super.onCreate(savedInstanceState);
11 setContentView(R.layout.activity_radio);
12 try {
13 pDialog2 = ProgressDialog.show(RadioActivity.this, "Lade Daten..", "Bitte warten...", true);
14
15 loadStream();
16 } catch (Exception e) {
17 pDialog = ProgressDialog.show(RadioActivity.this, "Fail", "Kein Internet", true);
18 e.printStackTrace();
19 }
20
21ImageButton player1 = (ImageButton) findViewById(R.id.player1);
22ImageButton player2 = (ImageButton) findViewById(R.id.player2);
23player1.setEnabled(true);
24player2.setEnabled(false);
25player1.setVisibility(0);
26player2.setVisibility(100);
27
28 }
29
30
31 public void playClick(View v) {
32 ImageButton player1 = (ImageButton) findViewById(R.id.player1);
33 ImageButton player2 = (ImageButton) findViewById(R.id.player2);
34
35 if (laden.isAlive()) {
36 Toast.makeText(getApplicationContext(), "Bitte Warten! Der Radio-Stream lädt...", Toast.LENGTH_LONG).show();
37 }else{
38
39
40
41
42 if (mp.isPlaying())
43 {
44 mp.pause();
45 player1.setEnabled(true);
46 player2.setEnabled(false);
47 player1.setVisibility(0);
48 player2.setVisibility(100);
49
50 }
51 else
52 {
53 mp.start();
54 player1.setEnabled(false);
55 player2.setEnabled(true);
56 player1.setVisibility(100);
57 player2.setVisibility(0);
58
59 }}
60}
61
62 protected void loadStream() throws Exception {
63
64 try{
65 laden = new Thread() {
66 public void run() {
67 mp=MediaPlayer.create(getApplicationContext(),Uri.parse("LINK"));
68 if (pDialog2.isShowing())
69 {
70 pDialog2.dismiss();
71 }
72 }
73
74 };
75 laden.start();
76
77 } catch (Exception e){pDialog = ProgressDialog.show(RadioActivity.this, "Fail", "Kein Internet", true);}
78
79 }

Antworten
Jaaaaakob
  • Forum-Beiträge: 21

10.12.2013, 13:22:00 via Website

habe es damit versucht

setVolumeControlStream(AudioManager.STREAM_MUSIC);

stream bricht nicht mehr ab, jedoch schließt sich das activity :(

Antworten
Christian
  • Forum-Beiträge: 307

10.12.2013, 14:23:54 via Website

Hi Jakob,

stream bricht nicht mehr ab, jedoch schließt sich das activity
also wenn sich die Activity von selbst schließt sollte irgendwas in der LogCat stehen

ähm noch was zu deinem Code:

1.) ImageButton player1 und ImageButton player2 solltest du beides als Klassenvariabelen setzen, die Methode findeViewById brauchst du dann nur einmal in der onCreate aufrufen.

2.) Desweiteren solltest du dir vielleicht nochmal überlegen wie du dem Benutzer über Events informierst. Weil du hast zwei Dialoge (einen für "warten" und einen für "!kein Internet") und einen Toast mit "Bitte Warten!". Es wär vielleicht besser alles was mit Warten zu tun hat wird per Dialog angezeigt und alle "Fehler" wie zbsp kein Internet per Toast.

3.) Wenn du möchtest das dein Stream auch läuft wenn die Activity nich mehr im Vordergrund ist solltest du ihn in einen Service auslagern.

Hoffe die Tipps helfen dir.

Mfg Christian

— geändert am 10.12.2013, 14:29:30

Antworten
Jaaaaakob
  • Forum-Beiträge: 21

10.12.2013, 20:16:28 via Website

die app stürzt nicht ab, sondern das zweite activity wird einfach geschlossen, als würde ich auf die back taste drücken

Antworten