2016-07-09 4 views
0

Я очень новичок в Android, я пытаюсь создать MediaPlayer, но у меня есть некоторые ошибки.MediaPlayer не работает вообще

1-Если я снова нажму на игру, начните играть дважды в одно и то же время.

2-Если нажать на puse, ничего не происходит.

3-У меня есть намерение сделать список воспроизведения с воспроизведением, паузой и остановкой.

Заранее спасибо.

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(); } 
      } 
     }); 
    } 
} 

ответ

0

Постарайся Заявляя MediaPlayer как переменную, оно должно быть достаточно, чтобы установить его на onCreate, а просто объявить его как атрибут вашего класса для тестирования.

Поскольку вы создаете новую ссылку на MediaPlayer каждый раз, когда вы нажимаете на ImageView или TextView, вы не старую ссылку на паузу или знать, если она уже запущена.


Код:

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(); 
       } 
      } 
     }); 
    } 
}