MediaPlayer播放音频文件
来源:互联网 发布:韩信点兵java语言算法 编辑:程序博客网 时间:2024/05/17 08:29
1,普通MediaPlayer播放音频文件
activity_sound_player.xml
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical"> <TextView android:layout_width="match_parent" android:layout_height="wrap_content" android:text="点击播放,播放音乐" /> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal"> <Button android:id="@+id/play" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:text="播放" /> <Button android:id="@+id/pause" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:text="暂停" /> <Button android:id="@+id/stop" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:text="停止" /> </LinearLayout> <TextView android:id="@+id/desc" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="状态描述" /></LinearLayout>
SoundPlayerActivity.java
/** * 功能描述:测试MediaPlayer播放音乐 * 时间:2016/8/4 * 作者:vision */public class SoundPlayerActivity extends AppCompatActivity { /** * 播放音乐状态控制按钮 */ private Button play, pause, stop; /** * 当前状态描述 */ private TextView desc; /** * 音频播放器 */ private MediaPlayer mediaPlayer; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_sound_player); play = (Button) findViewById(R.id.play); pause = (Button) findViewById(R.id.pause); stop = (Button) findViewById(R.id.stop); desc = (TextView) findViewById(R.id.desc); mediaPlayer = MediaPlayer.create(SoundPlayerActivity.this, R.raw.b); play.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { if (mediaPlayer != null) { try { mediaPlayer.reset(); mediaPlayer.prepare(); mediaPlayer.start(); } catch (Exception e) { e.printStackTrace(); } } else { try { mediaPlayer = MediaPlayer.create(SoundPlayerActivity.this, R.raw.b); mediaPlayer.prepare(); mediaPlayer.start(); } catch (Exception e) { e.printStackTrace(); } } desc.setText("播放中"); } }); pause.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { if (mediaPlayer.isPlaying()) { mediaPlayer.pause(); } desc.setText("暂停中"); } }); stop.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { if (mediaPlayer.isPlaying()) { mediaPlayer.stop(); } desc.setText("停止播放"); } }); } protected void onDestroy() { if (mediaPlayer.isPlaying()) { mediaPlayer.stop(); } mediaPlayer.release();//释放资源 super.onDestroy(); }}
2,SurfaceView结合MediaPlayer播放音频文件
activity_main.xml
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" android:weightSum="1"> <TextView android:id="@+id/text_desc" android:layout_width="match_parent" android:layout_height="wrap_content" /> <SurfaceView android:id="@+id/surfaceview" android:layout_width="400dip" android:layout_height="450dip" android:layout_gravity="center" android:layout_weight="0.25" /> <LinearLayout android:id="@+id/ll" android:layout_width="fill_parent" android:layout_height="wrap_content" android:gravity="center_horizontal"> <Button android:id="@+id/bt1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="播放" /> <Button android:id="@+id/bt2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="暂停" /> <Button android:id="@+id/bt3" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="停止" /> </LinearLayout></LinearLayout>VideoPlayorActivity.java
/** * 功能描述:SurfaceView播放音乐 * 时间:2016/8/4 * 作者:vision */public class VideoPlayorActivity extends AppCompatActivity implements SurfaceHolder.Callback { /** * SurfaceView作播放器 */ private SurfaceView surfaceView; /** * SurfaceView控制器 */ private SurfaceHolder holder; /** * 开始播放 */ private Button play; /** * 暂停 */ private Button pause; /** * 停止 */ private Button stop; /** * 视频播放器 */ private MediaPlayer mediaPlayer; private TextView path; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); surfaceView = (SurfaceView) findViewById(R.id.surfaceview); play = (Button) findViewById(R.id.bt1); pause = (Button) findViewById(R.id.bt2); stop = (Button) findViewById(R.id.bt3); path = (TextView) findViewById(R.id.text_desc); path.setText(Environment.getExternalStorageDirectory().getPath() + "/a.mp3"); holder = surfaceView.getHolder(); holder.addCallback(this); holder.setFixedSize(400, 450);//设置视频播放分辨率 holder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);//Surface类型 play.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { mediaPlayer.start(); } }); pause.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { mediaPlayer.pause(); } }); stop.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { mediaPlayer.stop(); } }); } @Override public void surfaceCreated(SurfaceHolder holder) { mediaPlayer = new MediaPlayer();// mediaPlayer = MediaPlayer.create(VideoPlayorActivity.this, R.raw.b); mediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);//设置数据源类型 mediaPlayer.setDisplay(this.holder);//设置播放展示View try { mediaPlayer.setDataSource(Environment.getExternalStorageDirectory() + "/a.mp3");// mediaPlayer.setDataSource("/storage/sdcard0/a.mp3");// mediaPlayer.setDataSource(String.valueOf(R.raw.b)); mediaPlayer.prepare(); } catch (Exception e) { e.printStackTrace(); } } @Override public void surfaceChanged(SurfaceHolder holder, int format, int width, int height) { } @Override public void surfaceDestroyed(SurfaceHolder holder) { if (mediaPlayer.isPlaying()) { mediaPlayer.stop(); } mediaPlayer.release(); }}
源码下载
成功的人不是赢在起点,而是赢在转折点。
0 0
- 使用MediaPlayer播放音频文件
- MediaPlayer-循环播放音频文件
- MediaPlayer播放音频文件
- MediaPlayer播放音频文件
- Andriod 使用MediaPlayer播放音频文件
- Andriod 使用MediaPlayer播放音频文件
- Andriod 使用MediaPlayer播放音频文件
- Andriod 使用MediaPlayer播放音频文件
- android播放音频文件(MediaPlayer)和录音(MediaRecorder)--播放音频文件
- 使用MediaPlayer间隔播放一组音频文件
- MediaPlayer播放assert目录下的音频文件
- MediaPlayer播放不同来源的音频文件
- Android实现sdcard音频文件浏览及MediaPlayer播放
- android 使用MediaPlayer播放assets目录的音频文件
- android播放音频文件(MediaPlayer)和录音(MediaRecorder)--录音
- Android 使用MediaPlayer播放assets目录的音频文件
- Android MediaPlayer 播放各种来源的音频文件,特效控制
- 播放音频文件
- Intel汇编语言程序设计学习-第二章 IA-32处理器体系结构-下
- Android属性动画解析,Interpolator和ViewPropertyAnimator的用法
- Educational Codeforces Round 15
- 迭代器的使用实例
- 几种常见的正则表达式验证
- MediaPlayer播放音频文件
- 去掉android点击事件产生的半透明蓝色背景
- 模拟实现memmove函数。
- draw_net.py绘制caffe net结构
- 树的判定(并查集)
- 自适应屏幕的list和grid
- 关于Unbuntu使用SmartGit到期后的解决办法
- android camera程序源代码,可连拍,未添加储存功能,注释详细
- 关于分布式事务、两阶段提交、一阶段提交、Best Efforts 1PC模式和事务补偿机制的研究[转]