2016-07-09 21 views
0

Ich bin ein sehr Anfänger in Android, ich versuche, einen MediaPlayer funktioniert, aber ich habe einige Fehler.MediaPlayer überhaupt nicht funktioniert

1-Wenn ich erneut auf Wiedergabe klicke, beginne gleichzeitig zweimal zu spielen.

2-Wenn auf puse klicken, passiert nichts.

3-Meine Absicht ist es, eine Wiedergabeliste mit Wiedergabe, Pause und Stopp zu machen.

Vielen Dank im Voraus.

package com.example.android.allmusic; 

import android.content.Context; 
import android.content.Intent; 
import android.media.MediaPlayer; 
import android.os.Bundle; 
import android.support.v7.app.AppCompatActivity; 
import android.view.View; 
import android.view.View.OnClickListener; 
import android.widget.ImageView; 
import android.widget.TextView; 
import android.media.MediaPlayer; 

public class RomanticActivity extends AppCompatActivity { 
    boolean firstSongBoolean; 



    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_romantic); 


     TextView firstSong = (TextView) findViewById(R.id.first_song); 
     firstSong.setOnClickListener(new OnClickListener() { 

      @Override 
      public void onClick(View view) { 
       MediaPlayer mp = MediaPlayer.create(getApplicationContext(), R.raw.primero); 
       if (!mp.isPlaying()) {mp.start();} 
      } 
     }); 

     ImageView firstSongPause = (ImageView) findViewById(R.id.first_song_pause); 
     firstSongPlay.setOnClickListener(new OnClickListener() { 

      @Override 
      public void onClick(View view) { 
       MediaPlayer mp = MediaPlayer.create(getApplicationContext(), R.raw.primero); 
       if (mp.isPlaying()) { mp.pause(); } 
      } 
     }); 
    } 
} 

Antwort

0

Versuchen Sie Ihr MediaPlayer als Mitglied Variable deklariert, sollte es genug sein, es auf Ihrem onCreate, aber es nur als ein Attribut der Klasse zu testen erklären.

Da Sie einen neuen Verweis auf die MediaPlayer jedes Mal, wenn Sie auf der ImageView oder TextView klicken erstellen, müssen Sie nicht die alte Referenz es zu pausieren oder wissen, ob es bereits gestartet wurde.


Code:

public class RomanticActivity extends AppCompatActivity { 
    boolean firstSongBoolean; 

    //MediaPlayer as a member variable 
    private MediaPlayer mp; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_romantic); 

     mp = MediaPlayer.create(getApplicationContext(), R.raw.primero); 

     TextView firstSong = (TextView) findViewById(R.id.first_song); 
     firstSong.setOnClickListener(new View.OnClickListener() { 

      @Override 
      public void onClick(View view) { 
       if (!mp.isPlaying()) { 
        mp.start(); 
       } 
      } 
     }); 

     ImageView firstSongPause = (ImageView) findViewById(R.id.first_song_pause); 
     firstSongPlay.setOnClickListener(new View.OnClickListener() { 

      @Override 
      public void onClick(View view) { 
       if (mp.isPlaying()) { 
        mp.pause(); 
       } 
      } 
     }); 
    } 
} 
Verwandte Themen