第一行安卓代码——播放多媒体文件8.4.1
来源:互联网 发布:淘宝露天拍卖代购 编辑:程序博客网 时间:2024/05/16 05:44
8.4.1播放音频
在安卓中播放较长的音频文件,如背景音乐等都是通过MediaPlayer类来实现的,它对多种格式的音频文件提供了非常全面的控制方法,从而使播放音乐的工作变得非常简单。下面是MediaPlayer类中的常用的控制方法
setDataSource() //设置音频文件的位置prepare() //在播放音频文件之前调用这个方法完成准备工作start() //开始或继续播放stop() //停止播放,之后也无法再继续播放pause() //暂停,可以继续release() //释放掉与MediaPlayer有关的资源isPlayering() //是否正在播放getDuration() //获取载入音乐的时间长度
原理很简单,直接上代码
AndroidManifest.xml中声明用到的权限
...<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>...
布局文件:
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/activity_main" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context="com.example.hms.playaudiotest.MainActivity"> <Button android:id="@+id/play" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="Play" /> <Button android:id="@+id/stop" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="Stop" /> <Button android:id="@+id/Pause" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="Pause"/></LinearLayout>
MainActivity
public class MainActivity extends AppCompatActivity implements View.OnClickListener{ private MediaPlayer mediaPlayer = new MediaPlayer(); @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Button play = (Button) findViewById(R.id.play); Button stop = (Button) findViewById(R.id.stop); Button pause = (Button) findViewById(R.id.Pause); play.setOnClickListener(this); stop.setOnClickListener(this); pause.setOnClickListener(this); if(ContextCompat.checkSelfPermission(MainActivity.this, Manifest.permission.WRITE_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED){ ActivityCompat.requestPermissions(MainActivity.this, new String[] { Manifest.permission.WRITE_EXTERNAL_STORAGE }, 1); } else { initMediaPlayer(); } } @Override public void onClick(View v) { switch (v.getId()) { case R.id.play: if(!mediaPlayer.isPlaying()){ mediaPlayer.start(); } break; case R.id.Pause: if(mediaPlayer.isPlaying()) { mediaPlayer.pause(); } break; case R.id.stop: if(mediaPlayer.isPlaying()) { mediaPlayer.reset(); initMediaPlayer(); } break; default: break; } } private void initMediaPlayer() { try{ File file = new File(Environment.getExternalStorageDirectory(), "music.mp3"); mediaPlayer.setDataSource(file.getPath()); mediaPlayer.prepare(); } catch (Exception 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: } } @Override protected void onDestroy() { super.onDestroy(); if(mediaPlayer != null) { mediaPlayer.stop(); mediaPlayer.release(); } }}
0 0
- 第一行安卓代码——播放多媒体文件8.4.1
- 第一行代码-8.4 播放多媒体文件
- 第一行安卓代码——播放视频8.4.2
- 读《第一行代码——安卓》2.3.3
- 第一行安卓代码——使用通知8.2
- 第一行安卓代码
- 第一行安卓代码——调用摄像头拍照8.3.1
- 安卓——多媒体(视频播放器-拍照-)
- 第一行代码-安卓之旅
- 第一行代码笔记8:手机多媒体
- 《第一行代码》读书笔记(八)----多媒体
- 第一行安卓代码——从相册中选择照片8.3.2
- 第一行安卓代码——在活动中创建Menu2.2
- 第一行安卓代码——使用Intent在活动之间穿梭2.3
- 第一行安卓代码——活动的生命周期2.4
- 第一行安卓代码——活动的启动模式2.5
- 第一行安卓代码——活动的最佳实践2.6
- 第一行安卓代码——创建自定义控件3.4
- 跨域请求详解(已采纳)
- 进程/线程模型
- Leetcode029--最小路径和
- 数据结构实验之栈六:下一较大值(二)—栈+动态规划
- jQuery中的DOM操作(一)
- 第一行安卓代码——播放多媒体文件8.4.1
- 【Hibernate】持久化对象的三种状态
- 高科技玩具这么无趣,为何还要鼓励孩子玩?
- text、RC、Parquet、ORC
- 【设计模式】六大原则之二(依赖倒转原则与里氏代换原则)
- spark集群部署-硬件配置官方建议
- Python爬虫如何获取动态内容-上
- 设计模式笔记
- VC工程配置OpenCV库