Android手机多媒体——播放音乐 视频

一 播放音乐

1.播放音频的MediaPlayer类

方法名功能描述
setDataSource()设置要播放的音频文件的位置
prepare()在开始播放之前调用这个方法完成准备工作
start()开始或继续播放音频
pause()暂停播放音频
reset()将MediaPlayer 对象重置到刚刚创建的状态
seekTo()从指定的位置开始播放音频
stop()停止播放音频。调用这个方法后的MediaPlayer 对象无法再播放音频
seekTo()从指定的位置开始播放音频
release()释放掉与MediaPlayer 对象相关的资源
isPlaying()判断当前MediaPlayer 是否正在播放音频
getDuration()获取载入的音频文件的时长

 

2.布局文件

有三个按钮来控制,分别是开始,暂停,停止

 1 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
 2     android:layout_width="match_parent"
 3     android:layout_height="match_parent"
 4     android:orientation="vertical">
 5 
 6     <Button
 7         android:id="@+id/play"
 8         android:layout_width="match_parent"
 9         android:layout_height="wrap_content"
10         android:text="play" />
11 
12     <Button
13         android:id="@+id/pause"
14         android:layout_width="match_parent"
15         android:layout_height="wrap_content"
16         android:text="pause" />
17 
18     <Button
19         android:id="@+id/stop"
20         android:layout_width="match_parent"
21         android:layout_height="wrap_content"
22         android:text="stop" />
23 </LinearLayout>

3.权限声明:

因为该程序中用到了Sd卡相关存储的功能,所以需要权限声明

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>

4.实例代码:

在注册过按键之后,先进行一个权限判断。如果有授权就加入到initMediaPlayer中进行初始化,如果没有授权则反馈信息并直接finish()来结束进程。

在initMediaPlayer初始化中,确定file存储地址。然后,指定音频文件路径,并准备音频文件。

之后就是按键的switch处理,判断按下的是什么键,然后判断音频是否在播放,然后执行相关的操作。

最后在onDestroy 活动停止是也要停止音频的相关播放。代码如下:

 1 public class MainActivity extends AppCompatActivity implements View.OnClickListener {
 2 
 3     private MediaPlayer mediaPlayer = new MediaPlayer();
 4 
 5     @Override
 6     protected void onCreate(Bundle savedInstanceState) {
 7         super.onCreate(savedInstanceState);
 8         setContentView(R.layout.activity_main);
 9 
10         Button play = (Button) findViewById(R.id.play);
11         Button pause = (Button) findViewById(R.id.pause);
12         Button stop = (Button) findViewById(R.id.stop);
13         play.setOnClickListener(this);
14         pause.setOnClickListener(this);
15         stop.setOnClickListener(this);
16 
17         if (ContextCompat.checkSelfPermission(MainActivity.this,
18                 Manifest.permission.WRITE_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) {
19             ActivityCompat.requestPermissions(MainActivity.this,
20                     new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE}, 1);
21         }else{
22             initMediaPlayer();  //初始化MediaPlayer
23         }
24     }
25 
26     private void initMediaPlayer() {
27         try{
28             File file = new File(Environment.getExternalStorageDirectory(),"music.mp3");
29             mediaPlayer.setDataSource(file.getPath());  //为音频指定路径
30             mediaPlayer.prepare();  //使音频加入准备状态
31         } catch (IOException e) {
32             e.printStackTrace();
33         }
34     }
35 
36     @Override
37     public void onRequestPermissionsResult(int requestCode,String[] permissions,int[] grantResults){
38         switch(requestCode){
39             case 1:
40                 if(grantResults.length>=0&&grantResults[0]==PackageManager.PERMISSION_GRANTED){
41                     initMediaPlayer();
42                 }else {
43                     Toast.makeText(this,"未获得授权",Toast.LENGTH_LONG).show();
44                     finish();
45                 }
46                 break;
47             default:
48                 break;
49         }
50     }
51 
52     @Override
53     public void onClick(View view) {
54         switch (view.getId()){
55             case R.id.play:
56                 //如果媒体没有在播放,则开始播放
57                 if(!mediaPlayer.isPlaying()){
58                     mediaPlayer.start();
59                 }
60                 break;
61             case R.id.pause:
62                 //如果媒体正在播放,则暂停播放
63                 if (mediaPlayer.isPlaying()){
64                     mediaPlayer.pause();
65                 }
66                 break;
67             case R.id.stop:
68                 if(mediaPlayer.isPlaying()){
69                     mediaPlayer.reset(); //停止播放
70                     initMediaPlayer();
71                 }
72                 break;
73             default:
74                 break;
75         }
76     }
77 
78     /*在程序关闭时,停止音乐播放并清空资源*/
79     @Override
80     protected void onDestroy(){
81         super.onDestroy();
82         if(mediaPlayer!=null){
83             mediaPlayer.stop();
84             mediaPlayer.release();
85         }
86     }
87 }

 

二 播放视频

1.VideoView类相关方法:

方法名功能描述
setVideoPath()设置要播放的视频文件的位置
start()开始或继续播放视频
pause()暂停播放视频
resume()将视频重头开始播放
seekTo()从指定的位置开始播放视频
isPlaying()判断当前是否正在播放视频
getDuration()获取载入的视频文件的时长

2.使用方法和之前的播放音频方法十分类似,就不再赘述。

转载于:https://www.cnblogs.com/Mask-D/p/9536611.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值