MediaPlayer根本不工作

时间:2016-07-09 01:31:24

标签: android android-mediaplayer playback

我是Android的初学者,我正在尝试使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(); }
            }
        });
    }
}

1 个答案:

答案 0 :(得分:0)

尝试将MediaPlayer声明为成员变量,应该足以在onCreate上设置它,但只需将其声明为要测试的类的属性。

由于您每次点击ImageViewTextView时都要创建对MediaPlayer的新引用,因此您不需要将旧引用暂停或{知道它是否已经开始。

代码:

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