`
liaokang.java
  • 浏览: 155428 次
  • 性别: Icon_minigender_1
  • 来自: 湖南
社区版块
存档分类
最新评论

Android 音频播放

阅读更多
android音频播放方式有两种:一种是MediaPlayer,另一种是SoundPool,下面这个例子是用的第一种

1.首先看布局文件
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    >
<TextView  
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:text="音乐文件名称"
    />

<EditText
	android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:text="neyanbhbin.mp3"
    android:id="@+id/fileName"
	/>
	
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content">

<Button
	android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:text="播放"
    android:id="@+id/startButton"
	/>
	
<Button
	android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:text="暂停"
    android:layout_toRightOf="@id/startButton"
    android:layout_alignTop="@id/startButton"
    android:id="@+id/pauseButton"
	/>
	
<Button
	android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:text="停止"
       android:layout_toRightOf="@+id/pauseButton"
    android:layout_alignTop="@+id/pauseButton"
    android:id="@+id/endButton"
	/>
	
</RelativeLayout>

</LinearLayout>



2.响应的Activity代码如下
package com.lamp.audio;


import android.app.Activity;
import android.media.AudioManager;
import android.media.MediaPlayer;
import android.media.MediaPlayer.OnCompletionListener;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;

public class Audio extends Activity {
	private EditText fileNameText = null;
	private MediaPlayer mediaPlayer = null;
	private boolean ispause = false;
	private static final String TAG = "Audio";
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        
        fileNameText = (EditText)this.findViewById(R.id.fileName);
        Button startButton = (Button)this.findViewById(R.id.startButton);
        Button pauseButton = (Button)this.findViewById(R.id.pauseButton);
        Button endButton = (Button)this.findViewById(R.id.endButton);
        startButton.setOnClickListener(listener);
        pauseButton.setOnClickListener(listener);
        endButton.setOnClickListener(listener);
        mediaPlayer = new MediaPlayer();
        mediaPlayer.setOnCompletionListener(new OnCompletionListener() {
			
			public void onCompletion(MediaPlayer mp) {
				Toast.makeText(Audio.this, "播放结束", Toast.LENGTH_LONG).show();
			}
		});
    }
    private View.OnClickListener listener = new View.OnClickListener() {
		public void onClick(View v) {
			Button button = (Button)v;
			switch (button.getId()) {
			case R.id.startButton:
				String fileName = fileNameText.getText().toString();
				mediaPlayer.reset();
				mediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
				try {
					mediaPlayer.setDataSource("/mnt/sdcard/" + fileName);
					//缓冲
					mediaPlayer.prepare();
					//开始播放
					mediaPlayer.start();
				} catch (Exception e) {
					Log.e(TAG, e.toString());
				} 
				break;

			case R.id.pauseButton:
				if(mediaPlayer.isPlaying()){
					//暂停播放
					mediaPlayer.pause();
				}else{
					mediaPlayer.start();
				}
				break;
				
			case R.id.endButton:
				if(mediaPlayer.isPlaying()){
					//停止播放
					mediaPlayer.stop();
				}
				break;
			}
		}
	};
	
	//当手机收到外来响应,比如接到电话,音频播放暂停
	protected void onPause() {
		if(mediaPlayer.isPlaying()){
			mediaPlayer.pause();
			ispause = true;
		}
		super.onPause();
	}
	
	//当挂断电话后恢复播放
	protected void onResume() {
		if(ispause){
			mediaPlayer.start();
			ispause = false;
		}
		super.onResume();
	}
	
	@Override
	protected void onDestroy() {
		mediaPlayer.release();
		mediaPlayer = null;
		super.onDestroy();
	}
}


播放的map3文件可以放在资源文件夹,sdk卡,此例子是放在sdk根目录下
分享到:
评论

相关推荐

    Android 音乐播放源码.zip

    通过分析和学习这个源码,开发者可以掌握Android音频播放的基本流程,了解如何处理音乐文件、播放控制、媒体库访问以及UI设计等多个方面。同时,这也能为自定义音乐播放器或者增强现有应用的音频功能提供基础。

    android音频播放控件

    "android音频播放控件"的设计通常包括以下几个关键部分: 1. **UI设计**:设计一个符合用户习惯的界面,通常包含播放/暂停按钮、前进/后退按钮、音量调节、进度条等元素。进度条可以通过监听`MediaPlayer`的播放...

    Android音乐播放

    在Android平台上开发一个音乐播放应用是一项常见的任务,它涉及到多媒体处理、用户界面设计以及系统服务的集成等多个技术领域。下面,我们将深入探讨“Android音乐播放”这个主题,涵盖描述中提到的音乐控制和音乐...

    Android音乐播放前台服务

    - 音乐播放通常涉及到Android的`MediaPlayer`类,它是Android提供的一种多媒体播放组件,可以处理音频和视频文件。在音乐播放应用中,我们需要用到`MediaPlayer`的`setDataSource()`来设置音乐文件源,`prepare()`...

    2021-影音播放-android 音乐播放源码.zip

    通过详细研究和分析这个源码,开发者不仅可以了解音乐播放应用的基本构建,还可以学习到如何处理Android音频播放中的各种复杂情况,提升自己的开发能力。同时,这也为创建自己的音乐播放应用提供了实践基础。

    android音乐播放程序源码

    总的来说,"android音乐播放程序源码"是一个实践性极强的学习资源,对于想要提升Android音频处理能力的开发者来说,是不可多得的参考资料。通过深入研究这个项目,开发者不仅可以掌握Android音乐播放器的实现原理,...

    android 音乐播放源码.zip

    综上所述,“android 音乐播放源码.zip”项目涵盖了Android多媒体框架中的关键知识点,包括MediaPlayer的使用、媒体库的管理、UI交互设计、音频焦点控制以及后台播放服务的实现。通过深入研究和理解这个源码,开发者...

    android音频播放

    通过深入学习和实践VoiceDemo,初学者可以掌握Android音频播放的基础知识,为开发更复杂的音乐播放应用打下坚实基础。同时,还可以进一步探索其他音频库,如ExoPlayer,以获得更高级的功能和更好的性能。

    Android音乐播放源码.zip

    这个"Android音乐播放源码.zip"的资源很可能包含了实现这一功能的完整代码库,这对于学习和理解Android音频处理以及UI设计非常有帮助。下面,我们将深入探讨相关知识点。 1. **音频播放API**:Android提供了...

    Android音乐播放代码.rar

    这份"Android音乐播放代码.rar"资源提供了一个完整的音乐播放器的源码,可以帮助开发者深入理解如何在Android环境下实现音频播放功能。以下是这个项目中涉及的一些关键知识点: 1. **多媒体框架**:Android提供了...

    Android音频播放

    这个项目“Android音频播放”显然是基于火星(mars)老师的教程实现的,并且已经经过了实际测试,确保功能正常。关键点在于需要用户根据自己的环境调整音频流的IP地址和端口号。 Android音频播放涉及以下核心知识点...

    android 音乐播放源码.rar

    这个项目可能包含了实现音频播放、控制、界面交互等功能的全部代码,开发者可以通过研究和学习这些源码来理解如何在Android平台上开发音乐播放应用。 【描述】描述中的".rar"文件扩展名表明这是一个压缩文件,通常...

    android 音频播放

    总的来说,Android音频播放涉及的内容丰富,从基本的MediaPlayer使用到高级的ExoPlayer集成,再到音频焦点和权限管理,都需要开发者充分理解和掌握。在实际开发中,根据项目需求选择合适的方法,并注意处理好各种...

    android音乐播放源码

    "android音乐播放源码"提供了实现这一功能的基础框架,可以帮助我们理解和学习如何在Android设备上创建一个功能完善的音乐播放应用。这个源码可能包含播放控制、音频流处理、音乐库管理等多个关键模块。 1. **播放...

    Android播放在线音频文件

    本示例项目"OnlineMusicPlayer"旨在提供一个基础的实现方案,帮助开发者理解和掌握如何在Android应用中实现在线音乐播放。以下是关于这个主题的一些关键知识点: 1. **MediaPlayer类**:Android系统提供了`...

    Android程序研发源码Android 音乐播放源码.zip

    在Android平台上开发应用程序时,音乐播放功能是许多用户所期待的。这个"Android程序研发源码Android 音乐播放源码.zip"文件提供了一个实际的示例,可以帮助开发者深入理解如何在Android上实现一个音乐播放器。源码...

    android音乐播放

    这个"android音乐播放"项目提供了一个实际的示例,展示了如何创建一个功能完备且用户体验良好的音乐播放应用。通过深入分析这个项目,我们可以学习到很多关于Android应用开发的知识点。 首先,音乐播放器的核心功能...

    安卓项目android 音乐播放源码.rar

    在本资源中,我们拥有一个名为"安卓项目android 音乐播放源码.rar"的压缩包,这是一份用于Android平台的音乐播放器项目的源代码。这个项目对于开发者来说,无论是初学者还是有一定经验的工程师,都具有很高的学习...

    android 音频播放MP3 audio

    10. **Service 使用**: 对于长时间运行的音乐播放,建议使用`Service`,这样即使用户离开应用,音乐仍能持续播放。`Binder`可以用于在Activity和服务之间进行通信。 11. **通知栏控制**: 对于后台播放,通常会在...

Global site tag (gtag.js) - Google Analytics