第一行安卓代码——播放多媒体文件8.4.1

原创 2017年02月02日 10:03:00

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();
        }
    }
}
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/TyroneRenekton/article/details/54834794

iOS-多媒体-音视频播放、录制 | 拍照 录像

本课程由扣丁学堂教学总监郭宏志讲授,主要讲解多媒体这一专题课程,内容包括:播放音乐、处理播放中断和续播、实现录音、播放视频、捕获视频缩略图、选择系统音乐、拍照和录像等知识。
  • 2015年11月26日 14:40

最简单Android音乐播放器

Android在播放音频和视频方面提供了一套完整的API,可以轻松地编写出一个简单的音频播放器。         在 Android 中播放音频文件一般都是使用 MediaPlayer 类来实现的,...
  • u012796139
  • u012796139
  • 2015-11-23 10:21:18
  • 908

第一行代码笔记,第八章-----多媒体的使用

1:通知的使用:       通知:比如:头条,淘宝,各种APP打开时,发送的提示信息,(智能手机从最上面拉下来的界面就是通知界面显示的地方,也就是所谓的状态栏)。        1.1 通知的基...
  • TAR1314520
  • TAR1314520
  • 2016-10-13 16:00:49
  • 264

第一行代码-8.4 播放多媒体文件

1、播放音频   播放音乐可以通过MediaPlayer实现,下面说明一下MediaPlayer的一些常用的类。 方法名 功能描述 setDataSource() 设置要播放的音频文件的位置 ...
  • xiaoliizi
  • xiaoliizi
  • 2016-02-23 18:50:02
  • 864

Android 播放视频 VideoView 《第一行代码》学习笔记

视频播放需要使用VideoView类来实现,以下是一些VideoView的常用方法: 方法名 功能描述 setVideoPath() 设置要播放的视频文件位置 start() 开始...
  • htwhtw123
  • htwhtw123
  • 2016-09-23 12:56:30
  • 1148

第一行安卓代码——播放多媒体文件8.4.1

8.4.1播放音频 在安卓中播放较长的音频文件,如背景音乐等都是通过MediaPlayer类来实现的,它对多种格式的音频文件提供了非常全面的控制方法,从而使播放音乐的工作变得非常简单。下面是Medi...
  • TyroneRenekton
  • TyroneRenekton
  • 2017-02-02 10:03:00
  • 308

Android第一行代码学习笔记六----手机多媒体

通知 通知基本用法 静态显示 首先,调用Context的getSystemService()获取NoticationManager(),getSystemService()方法接收一个字符串参数确定获...
  • u012195899
  • u012195899
  • 2016-09-22 14:28:59
  • 390

第一行代码笔记8:手机多媒体

一、使用通知 1、使用场景: 当某个应用希望向用户发出一些提示信息,而该程序又不在前台运行时,就可借助通知来实现。 2、用法: 可在活动、广播和服务中创建。 a.基本用法 //原理和传感器类似,都是先...
  • mwj_88
  • mwj_88
  • 2015-03-23 09:52:36
  • 775

多媒体之播放音乐

闲来无聊,最近了解了一下多媒体的一些初步知识 音频播放主要设计到MediaPlayer这个类,播放音频的路径可以来源于三个地方 1.应用内的音频 public class MediaPlayAct...
  • qiuqiu_qiuqiu123
  • qiuqiu_qiuqiu123
  • 2017-02-11 11:52:48
  • 222

安卓视频播放器 一行代码快速实现视频播放,Android视频播放,AndroidMP3播放,安卓视频播放一行代码搞定

一行代码快速实现视频播放,Android视频播放,AndroidMP3播放,安卓视频播放一行代码搞定,真正实现Android的全屏功能 github地址:https://github.com/qius...
  • csj731742019
  • csj731742019
  • 2016-12-20 18:29:10
  • 263
收藏助手
不良信息举报
您举报文章:第一行安卓代码——播放多媒体文件8.4.1
举报原因:
原因补充:

(最多只允许输入30个字)