博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
安卓播放音频
阅读量:7244 次
发布时间:2019-06-29

本文共 3570 字,大约阅读时间需要 11 分钟。

播放音频

1.设置界面

2.配置权限

3.实现功能

package demo.jq.com.playaudiotest;import android.content.pm.PackageManager;import android.media.MediaPlayer;import android.net.Uri;import android.os.Environment;import android.support.annotation.NonNull;import android.support.v4.app.ActivityCompat;import android.support.v4.content.ContextCompat;import android.support.v4.os.EnvironmentCompat;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.util.jar.Manifest;/** * @author jim * implements View.OnClickListener 继承接口 */public class MainActivity extends AppCompatActivity implements View.OnClickListener{    private MediaPlayer mediaPlayer = new MediaPlayer();    private static final String TAG = "MainActivity";    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        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(MainActivity.this, android.Manifest.permission.WRITE_EXTERNAL_STORAGE)!= PackageManager.PERMISSION_GRANTED) {            ActivityCompat.requestPermissions(MainActivity.this,new String[]{android.Manifest.permission.WRITE_EXTERNAL_STORAGE},1);        } else {            initMediaPlayer();        }    }    private void initMediaPlayer() {        try {            Uri setDataSourceuri = Uri.parse("android.resource://demo.jq.com.playaudiotest/"+R.raw.music);            mediaPlayer.setDataSource(this,setDataSourceuri);            mediaPlayer.prepare();        } catch (Exception e) {            e.printStackTrace();        }    }    @Override    public void onRequestPermissionsResult(int requestCode,  String[] permissions,  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    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;        }    }    @Override    public void onDestroy() {        super.onDestroy();        if (mediaPlayer != null) {            mediaPlayer.stop();            mediaPlayer.release();        }    }}

这里有个关键就是获取音频文件的地址。

有几种情况,一种是播放sd卡,一种是播放应用中的音频,一种是播放在线的。

上面的案例是播放应用中的。

422101-20171021144558006-444645305.png

有意思的!确实能播放!

转载地址:http://exybm.baihongyu.com/

你可能感兴趣的文章
浅析JavaScript事件流——冒泡
查看>>
学习运维决心书
查看>>
计算中英文混合字符串的宽度
查看>>
MASM32_SDKv10以及一些帮大家打包的东西
查看>>
关于配置cordova的一些细节
查看>>
OpenJudge/Poj 2105 IP Address
查看>>
一分钟了解Allegro导入DXF文件
查看>>
Jenkisn call Psexec
查看>>
山东理工ACM【1532】矩阵输出
查看>>
IE9访问EBSR12排版格局错位(uttons and Text Misalignment in FWK pop-ups)
查看>>
JavaScript对象的浅拷贝与深拷贝
查看>>
SpringMVC学习笔记:表单提交 参数的接收
查看>>
idea全局设置
查看>>
Digital Color Meter 颜色值提取工具
查看>>
动态规划——Remove Boxes
查看>>
测试用例设计--因果图
查看>>
sublime sublimecodeintel配置 python
查看>>
数组中未出现的最小正整数
查看>>
114. Flatten Binary Tree to Linked List
查看>>
汽车轮子转动原理
查看>>