小小的爱只为你倾心 2016-05-24 08:35 采纳率: 25%
浏览 2904

Android MediaPlayer无法播放

package com.example.cjlhappiness.a131;

import android.media.MediaPlayer;
import android.net.Uri;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
import java.io.File;

public class MainActivity extends AppCompatActivity {
private MediaPlayer player;
private boolean isPause = false;
private File file;
private TextView hint;

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    final Button button1 = (Button) findViewById(R.id.start);
    final Button button2 = (Button) findViewById(R.id.pause);
    final Button button3 = (Button) findViewById(R.id.stop);
    hint = (TextView) findViewById(R.id.tv1);
    file = new File("/sdcard/test.mp3");

    if (file.exists()) {
        hint.setText("已找到文件");
        player=MediaPlayer.create(this,Uri.parse(file.getAbsolutePath()));
    } else {
        hint.setText("未找到文件");
        button1.setEnabled(false);
    }

    player.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {

        @Override
        public void onCompletion(MediaPlayer mp)
        {
            play();
        }
    });

    button1.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {
            play();
            if (isPause) {
                button2.setText("暂停");
                isPause = false;
            }
            button2.setEnabled(true);
            button3.setEnabled(true);
            button1.setEnabled(false);
        }
    });

    button2.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {
            if (player.isPlaying() && !isPause) {
                player.pause();
                isPause = true;
                ((Button) v).setText("继续");
                hint.setText("暂停播放");
                button1.setEnabled(true);
            } else {
                player.start();
                ((Button) v).setText("暂停");
                hint.setText("继续播放");
                isPause = false;
                button1.setEnabled(false);
            }
        }
    });

    button3.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {
            player.stop();
            hint.setText("停止播放");
            button2.setEnabled(false);
            button3.setEnabled(false);
            button1.setEnabled(true);
        }
    });
}

private void play() {
    try {
        player.reset();
        player.setDataSource(file.getAbsolutePath());
        player.prepare();
        player.start();
        hint.setText("开始播放");
    } catch (Exception e) {
        e.printStackTrace();
    }
}

@Override
protected void onDestroy() {
    if(player.isPlaying()){
        player.stop();
    }
    player.release();
    super.onDestroy();
}

}

  • 写回答

3条回答 默认 最新

  • 小菜陈 2016-05-24 09:02
    关注

    你不能播放最少要把log给出来

    评论

报告相同问题?

悬赏问题

  • ¥50 导入文件到网吧的电脑并且在重启之后不会被恢复
  • ¥15 (希望可以解决问题)ma和mb文件无法正常打开,打开后是空白,但是有正常内存占用,但可以在打开Maya应用程序后打开场景ma和mb格式。
  • ¥20 ML307A在使用AT命令连接EMQX平台的MQTT时被拒绝
  • ¥20 腾讯企业邮箱邮件可以恢复么
  • ¥15 有人知道怎么将自己的迁移策略布到edgecloudsim上使用吗?
  • ¥15 错误 LNK2001 无法解析的外部符号
  • ¥50 安装pyaudiokits失败
  • ¥15 计组这些题应该咋做呀
  • ¥60 更换迈创SOL6M4AE卡的时候,驱动要重新装才能使用,怎么解决?
  • ¥15 让node服务器有自动加载文件的功能