mediaPlayer的使用(内存卡与内存中读取资源)
来源:互联网 发布:slmmsk软件下载 编辑:程序博客网 时间:2024/05/17 00:11
这次简单的带来mediaPlayer播放音乐的基本操作使用,结合seekBar拖动,以及暂停播放。
简单demo效果图如下:
activity_main.xml:
<?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: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" android:orientation="vertical" tools:context="com.example.android26_mediaplayer.MainActivity"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="音乐播放器" /> <SeekBar android:layout_width="match_parent" android:layout_height="wrap_content" android:id="@+id/sb_mediaplay" /> <ImageButton android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@android:drawable/ic_media_play" android:onClick="Play" /></LinearLayout>
MainActivity.java:
package com.example.android26_mediaplayer;import android.media.MediaPlayer;import android.net.Uri;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.view.View;import android.widget.ImageButton;import android.widget.SeekBar;public class MainActivity extends AppCompatActivity { private SeekBar seekBar; private MediaPlayer mp; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); seekBar = (SeekBar) findViewById(R.id.sb_mediaplay); //添加seekBar的拖动事件 seekBar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() { @Override public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) { } @Override public void onStartTrackingTouch(SeekBar seekBar) { } @Override public void onStopTrackingTouch(SeekBar seekBar1) { //设置当前音乐的位置 mp.seekTo(seekBar.getProgress()); } }); } public void Play(View view){ ImageButton ImageButton= (android.widget.ImageButton) view; if(mp==null){ //读取内存中的资源 mp = MediaPlayer.create(this, R.raw.bow); mp.start(); //读取内存卡中的资源 mp=new MediaPlayer(); //设置音源// mp.setDataSource(this, Uri.parse("file://mnt/sdcard/music/love.mp3")); //准备(必须添加)// mp.prepare(); mp.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {//设置准备完成的监听 @Override public void onPrepared(MediaPlayer mp) { seekBar.setMax(mp.getDuration());//设置seekbar总时长 new MyThread().start();//启动线程 } }); } else if(mp.isPlaying()){//是否在播放 ImageButton.setImageResource(android.R.drawable.ic_media_play); mp.pause();//暂停音乐 } else{ ImageButton.setImageResource(android.R.drawable.ic_media_pause); mp.start();//播放音乐 } } class MyThread extends Thread{ @Override public void run() { super.run(); while(seekBar.getProgress()<=seekBar.getMax()){//如果当前的位置小于总长 seekBar.setProgress(mp.getCurrentPosition());//设置为当前音乐播放的位置 } } }}
这样简单的一个音乐播放器就完成啦。
0 0
- mediaPlayer的使用(内存卡与内存中读取资源)
- MediaPlayer读取手机内存文件夹权限问题
- MediaPlayer播放应用中、内存卡中、网络中的音乐
- 安卓使用MediaPlayer实现播放内存卡内的视频
- 安卓使用MediaPlayer实现播放内存卡内的视频
- MediaPlayer源码存在的内存泄漏问题,释放资源的正确方式
- Android使用Rxjava异步递归读取内存卡中所有的视频文件
- 资源加载卸载与内存的关系
- 内存中读取
- 文件的读取,动态内存的使用
- 使用libpng,libjpeg从文件读取和从内存读取2中方式的实现
- 使用libpng,libjpeg从文件读取和从内存读取2中方式的实现
- Android内存泄漏(线程造成的内存泄漏与资源未关闭造成的内存泄漏)
- 简单读取TOMCAT的内存使用情况
- 内存内存,资源资源!!
- FFMPEG内存操作(二)从内存中读取数及数据格式的转换
- 自定义MediaPlayer播放音乐路劲(内存,内存卡,网络)
- T264中内存的使用
- MAC系统操作指令汇总
- 解决html用js或者jq跨域请求报错的问题。我的ssm服务器!
- MVC设计模式
- poj 2152 Fire(树形dp)
- hdu4283 You Are the One 区间DP
- mediaPlayer的使用(内存卡与内存中读取资源)
- Java输入输出流
- Struts2的拦截器
- 写了个小东西
- 数组的表示
- 内容提供者之读取手机联系人
- 备忘mybatis使用
- 并发测试以及线程监控
- Unix系统操作指令汇总