代码改变世界

android 播放MP3实例

  蓝之风  阅读(2707)  评论(2编辑  收藏  举报

在android中播放mp3非常简单,也是项目中经常使用的,比如说要做项目的背景音乐,应用中某些功能的提示音等的。应用非常广泛,下面提供一个简单的使用实例:

layout文件的配置:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
  xmlns:android="http://schemas.android.com/apk/res/android"
  android:layout_width="wrap_content"
  android:orientation="vertical"
  android:layout_height="wrap_content">
  
  <Button android:text="播放" android:id="@+id/btnStart"
		android:layout_width="fill_parent" android:layout_height="wrap_content">
	</Button>
	<Button android:text="停止" android:id="@+id/btnStop"
		android:layout_width="fill_parent" android:layout_height="wrap_content">
	</Button>
</LinearLayout>

java实现文件:

/**
 * 
 */
package com.demo.media;

import android.app.Activity;
import android.media.MediaPlayer;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;

import com.demo.HelloWorld.R;

/**
 * @author xsl 
 *  vaiyanzi@gmail.com
 * 实现MP3播放功能
 */
public class mediademo extends Activity {

	private Button btnStart,btnStop;
	private static MediaPlayer mediaPlayer=null;
	@Override
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.media);
		btnStart = (Button) this.findViewById(R.id.btnStart);
		btnStart.setOnClickListener(new ButtonListener());
		
		btnStop = (Button) this.findViewById(R.id.btnStop);
		btnStop.setOnClickListener(new ButtonListener());		
	}
	class ButtonListener implements OnClickListener{

		public void onClick(View v) {
			switch(v.getId()){
			case R.id.btnStart:
				if(mediaPlayer==null){
					//创建播放实例
					mediaPlayer=MediaPlayer.create(mediademo.this, R.raw.tishiyin);
				}
				try {
					//设置是否循环播放
					mediaPlayer.setLooping(true);
					//设置播放起始点
					mediaPlayer.seekTo(0);		
					//开始播放
					mediaPlayer.start();
				} catch (IllegalStateException e) {					
					e.printStackTrace();
				} catch (Exception e) {					
					e.printStackTrace();
				}					
				break;
			case R.id.btnStop:
				if(mediaPlayer!=null){
					//停止播放
					mediaPlayer.stop();
					//释放资源
					mediaPlayer.release();
					mediaPlayer=null;
				}
				break;
			}			
		}		
	}
}

效果如图:

image

编辑推荐:
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
阅读排行:
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架
历史上的今天:
2006-07-21 Lucene.Net 创建索引和检索
点击右上角即可分享
微信分享提示