第一行安卓代码——播放多媒体文件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();
        }
    }
}
版权声明:本文为博主原创文章,未经博主允许不得转载。

ios9.0.2无需验证降级8.4.1详细教程

ios9.0.2无需验证降级8.4.1详细教程     苹果官方已经关闭了iOS8.4.1的验证,但是有很多升级到iOS9的用户更喜欢以前8.4.1这个版本。难道就没有办法了吗?别慌,...
  • zhangfeng1133
  • zhangfeng1133
  • 2016年01月14日 09:17
  • 1415

Android实际音乐播放的代码

//为了防止出现4.4版本前后的差别:利用各种手段,严格处理:在各自的状态做各自应该做的方法。防止底层报error //还要做上来电监听:停止播放的操作 //还包含上一首 下一首的播放 //是在...
  • qq_28676355
  • qq_28676355
  • 2016年03月15日 18:31
  • 1466

网页视频播放器代码总结大全

 网页在线视频播放代码总结大全,把代码中的视频路径换成与自己的相对路径或绝对路径,播放器的窗口大小,根据需要修改高和宽的参数。 1.avi格式   复制代码 代码如下: ...
  • wangmj518
  • wangmj518
  • 2015年05月10日 21:08
  • 1580

在Unity3D中控制动画播放

原文链接:
  • gzzheyi
  • gzzheyi
  • 2014年09月29日 16:25
  • 25791

asp.net各种类型视频播放代码

asp.net各种类型视频播放代码 asp.net各种类型视频播放代码,包括avi格式 mpg格式、smi格式 、rm格式 、wmv格式 、wma格式 、Windows Media Player...
  • ewqewqqwe
  • ewqewqqwe
  • 2014年03月26日 20:06
  • 1006

使用eagle导出国内PCB制板商可用的gerber文件 | APLUSA +复制链接

使用eagle导出国内PCB制板商可用的gerber文件 发表于770 天前 ⁄ 嵌入式硬件 ⁄ 暂无评论 eagle是一款在国外广泛流行的电路板绘制CAD软件,与protel99se类似。...
  • V__KING__
  • V__KING__
  • 2013年10月19日 12:01
  • 2164

linux获取音频及播放代码实例

代码功能:采集441帧然后播放出来 详细功能参考代码: 1 #include 2 #include 3 #include 4 5 6 int main(void){ ...
  • liuchen_csdn
  • liuchen_csdn
  • 2016年08月02日 20:17
  • 1832

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

一行代码快速实现视频播放,Android视频播放,AndroidMP3播放,安卓视频播放一行代码搞定,真正实现Android的全屏功能 github地址:https://github.com/qius...
  • csj731742019
  • csj731742019
  • 2016年12月20日 18:29
  • 198

MP4 FLASH等播放代码

1.我们在网页上看到的播放器无外乎WMP/RealOne/Macromedia Flash Player,其他的无非是面板不同,或者添加了其他控件,对于计算机上安装的一些播放器也都是编码和解码器的整合...
  • cjw13860421089
  • cjw13860421089
  • 2014年03月26日 11:03
  • 1157

JSP页面实现播放视频功能

生活不狂,菜鸟不狂,大家好,我是互联网小菜鸟,最近菜鸟在实训,用struts2写网页,想加入一个网页在线观看视频的功能,于是就找啊找啊,终于找见解决方法了,下面与大家一起分享一下。     以下代码...
  • qin2366552891
  • qin2366552891
  • 2013年07月15日 15:49
  • 7841
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:第一行安卓代码——播放多媒体文件8.4.1
举报原因:
原因补充:

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