Android之Mediaplayer音乐播放器
来源:互联网 发布:如何在淘宝上注册网店 编辑:程序博客网 时间:2024/05/17 07:41
Main3Acticity.java
package csdn.example.com.notification.PlayerAudioTest;import android.Manifest;import android.content.pm.PackageManager;import android.media.MediaPlayer;import android.os.Environment;import android.support.annotation.NonNull;import android.support.v4.app.ActivityCompat;import android.support.v4.content.ContextCompat;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.util.Log;import android.view.View;import android.widget.Button;import android.widget.Toast;import java.io.File;import java.io.IOException;import csdn.example.com.notification.R;public class Main3Activity extends AppCompatActivity implements View.OnClickListener {private MediaPlayer mediaPlayer = new MediaPlayer(); @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main3); Button play = (Button) findViewById(R.id.play); Button pause = (Button) findViewById(R.id.Pause); Button stop = (Button) findViewById(R.id.stop); play.setOnClickListener(this); pause.setOnClickListener(this); stop.setOnClickListener(this); if (ContextCompat.checkSelfPermission(Main3Activity.this, Manifest.permission. WRITE_EXTERNAL_STORAGE)!= PackageManager.PERMISSION_GRANTED){ ActivityCompat.requestPermissions(Main3Activity.this,new String[]{ Manifest.permission.WRITE_EXTERNAL_STORAGE },1); }else { initMediaPlayer(); //初始化MediaPlayer } } private void initMediaPlayer() { Log.d("123","到了吗"); File file = new File(Environment.getExternalStorageDirectory(), "music.mp3"); try { mediaPlayer.setDataSource(file.getPath()); //指定音频文件的路径 mediaPlayer.prepare(); //让MediaPlayer 进入到准备状态 } catch (IOException e) { e.printStackTrace(); } } @Override public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) { switch (requestCode){ case 1: if(grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED){ initMediaPlayer(); }else { Toast.makeText(this,"拒绝权限将无法使用程序",Toast.LENGTH_SHORT).show(); finish(); } break; default: } super.onRequestPermissionsResult(requestCode, permissions, grantResults); } @Override public void onClick(View v) { switch (v.getId()){ case R.id.play: if(!mediaPlayer.isPlaying()){ mediaPlayer.start(); //开始播放 Toast.makeText(this,"该音频时长为"+mediaPlayer.getDuration()+"毫秒",Toast.LENGTH_SHORT).show(); } break; case R.id.Pause: if(mediaPlayer.isPlaying()){ //将MediaPlayer对象重置到刚刚创建的状态 mediaPlayer.pause(); //暂停播放 } break; case R.id.stop: if(mediaPlayer.isPlaying()){ mediaPlayer.reset(); //停止播放 initMediaPlayer(); } break; default: break; } } @Override protected void onDestroy() { super.onDestroy(); if(mediaPlayer != null){ mediaPlayer.stop(); mediaPlayer.release(); } }}
运行截图如图所示
activity_main3
<?xml version="1.0" encoding="utf-8"?><LinearLayout android:orientation="vertical" android:layout_height="match_parent" android:layout_width="match_parent" xmlns:android="http://schemas.android.com/apk/res/android"> <Button android:layout_width="match_parent" android:layout_height="wrap_content" android:id="@+id/play" android:text="Play" /> <Button android:layout_width="match_parent" android:layout_height="wrap_content" android:id="@+id/Pause" android:text="Pause" /> <Button android:layout_width="match_parent" android:layout_height="wrap_content" android:id="@+id/stop" android:text="Stop" /></LinearLayout>
阅读全文
0 0
- Android之Mediaplayer音乐播放器
- Android之MediaPlayer(多媒体之音乐播放)
- android学习之利用MediaPlayer制作音乐播放器
- Android仿虾米音乐播放器之MediaPlayer使用
- 传智播客 Android 音乐播放器笔记 之mediaplayer
- android MediaPlayer 音乐播放
- android-MediaPlayer音乐播放
- android mediaPlayer 播放音乐
- Android音乐播放-MediaPlayer
- Android MediaPlayer 音乐播放
- MediaPlayer 之音乐循环播放器
- 音乐播放器APK之MediaPlayer使用指南
- Android 音乐播放器Service+MediaPlayer
- Android音乐播放器 -- MediaPlayer Service实现
- Android开发---MediaPlayer简单音乐播放器
- Android音乐播放器(MediaPlayer)
- Android实现简单音乐播放器(MediaPlayer)
- android多媒体音乐(MediaPlayer)播放器
- MYSQL 操作数据库
- Eclipse运行性能调优
- Matplotlib 对 LaTeX 的支持
- Unity常用的设计模式_工厂模式系列之工厂方法模式
- A*算法详解(转)
- Android之Mediaplayer音乐播放器
- 欢迎使用CSDN-markdown编辑器
- 第 3 章 线性表
- Struts2中的#、$、%的区别
- bzoj 3218: a + b Problem 最小割+可持久化线段树
- 欲学习的内容
- 暴力大神hxx 树形dp
- java Rserve测试
- bzoj 2369&2687: 区间 cdq分治+决策单调性