Android多媒体--利用Service实现背景音乐的播放
2014-06-16 22:36
357 查看
From:/article/2114299.html
Android允许我们使用Service组件来完成后台任务,这些任务的允许不会影响到用户其他的交互。
1、Activity类
[java]
view plaincopyprint?
package demo.camera;
import android.app.Activity;
import android.content.ComponentName;
import android.content.Context;
import android.content.Intent;
import android.content.ServiceConnection;
import android.os.Bundle;
import android.os.IBinder;
import android.view.View;
/**
* 演示Activity如何利用Service来完成后台Audio的播放功能
* 同时如何将Service和Activity进行绑定
* @author Administrator
*
*/
public class BackgroundAudioDemo extends Activity {
private AudioService audioService;
//使用ServiceConnection来监听Service状态的变化
private ServiceConnection conn = new ServiceConnection() {
@Override
public void onServiceDisconnected(ComponentName name) {
// TODO Auto-generated method stub
audioService = null;
}
@Override
public void onServiceConnected(ComponentName name, IBinder binder) {
//这里我们实例化audioService,通过binder来实现
audioService = ((AudioService.AudioBinder)binder).getService();
}
};
public void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.back_audio);
}
public void onClick(View v){
int id = v.getId();
Intent intent = new Intent();
intent.setClass(this, AudioService.class);
if(id == R.id.btn_start){
//启动Service,然后绑定该Service,这样我们可以在同时销毁该Activity,看看歌曲是否还在播放
startService(intent);
bindService(intent, conn, Context.BIND_AUTO_CREATE);
finish();
}else if(id == R.id.btn_end){
//结束Service
unbindService(conn);
stopService(intent);
finish();
}else if(id == R.id.btn_fun){
audioService.haveFun();
}
}
}
3、在清单文件AndroidManifest.xml中配置Service
<service
android:name=".AudioService" />
Android允许我们使用Service组件来完成后台任务,这些任务的允许不会影响到用户其他的交互。
1、Activity类
[java]
view plaincopyprint?
package demo.camera;
import android.app.Activity;
import android.content.ComponentName;
import android.content.Context;
import android.content.Intent;
import android.content.ServiceConnection;
import android.os.Bundle;
import android.os.IBinder;
import android.view.View;
/**
* 演示Activity如何利用Service来完成后台Audio的播放功能
* 同时如何将Service和Activity进行绑定
* @author Administrator
*
*/
public class BackgroundAudioDemo extends Activity {
private AudioService audioService;
//使用ServiceConnection来监听Service状态的变化
private ServiceConnection conn = new ServiceConnection() {
@Override
public void onServiceDisconnected(ComponentName name) {
// TODO Auto-generated method stub
audioService = null;
}
@Override
public void onServiceConnected(ComponentName name, IBinder binder) {
//这里我们实例化audioService,通过binder来实现
audioService = ((AudioService.AudioBinder)binder).getService();
}
};
public void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.back_audio);
}
public void onClick(View v){
int id = v.getId();
Intent intent = new Intent();
intent.setClass(this, AudioService.class);
if(id == R.id.btn_start){
//启动Service,然后绑定该Service,这样我们可以在同时销毁该Activity,看看歌曲是否还在播放
startService(intent);
bindService(intent, conn, Context.BIND_AUTO_CREATE);
finish();
}else if(id == R.id.btn_end){
//结束Service
unbindService(conn);
stopService(intent);
finish();
}else if(id == R.id.btn_fun){
audioService.haveFun();
}
}
}
[java] view plaincopyprint? package demo.camera; import android.app.Service; import android.content.Intent; import android.media.MediaPlayer; import android.os.Binder; import android.os.IBinder; import android.widget.MediaController.MediaPlayerControl; /** * 为了可以使得在后台播放音乐,我们需要Service * Service就是用来在后台完成一些不需要和用户交互的动作 * @author Administrator * */ public class AudioService extends Service implements MediaPlayer.OnCompletionListener{ MediaPlayer player; private final IBinder binder = new AudioBinder(); @Override public IBinder onBind(Intent arg0) { // TODO Auto-generated method stub return binder; } /** * 当Audio播放完的时候触发该动作 */ @Override public void onCompletion(MediaPlayer player) { // TODO Auto-generated method stub stopSelf();//结束了,则结束Service } //在这里我们需要实例化MediaPlayer对象 public void onCreate(){ super.onCreate(); //我们从raw文件夹中获取一个应用自带的mp3文件 player = MediaPlayer.create(this, R.raw.tt); player.setOnCompletionListener(this); } /** * 该方法在SDK2.0才开始有的,替代原来的onStart方法 */ public int onStartCommand(Intent intent, int flags, int startId){ if(!player.isPlaying()){ player.start(); } return START_STICKY; } public void onDestroy(){ //super.onDestroy(); if(player.isPlaying()){ player.stop(); } player.release(); } //为了和Activity交互,我们需要定义一个Binder对象 class AudioBinder extends Binder{ //返回Service对象 AudioService getService(){ return AudioService.this; } } //后退播放进度 public void haveFun(){ if(player.isPlaying() && player.getCurrentPosition()>2500){ player.seekTo(player.getCurrentPosition()-2500); } } } package demo.camera; import android.app.Service; import android.content.Intent; import android.media.MediaPlayer; import android.os.Binder; import android.os.IBinder; import android.widget.MediaController.MediaPlayerControl; /** * 为了可以使得在后台播放音乐,我们需要Service * Service就是用来在后台完成一些不需要和用户交互的动作 * @author Administrator * */ public class AudioService extends Service implements MediaPlayer.OnCompletionListener{ MediaPlayer player; private final IBinder binder = new AudioBinder(); @Override public IBinder onBind(Intent arg0) { // TODO Auto-generated method stub return binder; } /** * 当Audio播放完的时候触发该动作 */ @Override public void onCompletion(MediaPlayer player) { // TODO Auto-generated method stub stopSelf();//结束了,则结束Service } //在这里我们需要实例化MediaPlayer对象 public void onCreate(){ super.onCreate(); //我们从raw文件夹中获取一个应用自带的mp3文件 player = MediaPlayer.create(this, R.raw.tt); player.setOnCompletionListener(this); } /** * 该方法在SDK2.0才开始有的,替代原来的onStart方法 */ public int onStartCommand(Intent intent, int flags, int startId){ if(!player.isPlaying()){ player.start(); } return START_STICKY; } public void onDestroy(){ //super.onDestroy(); if(player.isPlaying()){ player.stop(); } player.release(); } //为了和Activity交互,我们需要定义一个Binder对象 class AudioBinder extends Binder{ //返回Service对象 AudioService getService(){ return AudioService.this; } } //后退播放进度 public void haveFun(){ if(player.isPlaying() && player.getCurrentPosition()>2500){ player.seekTo(player.getCurrentPosition()-2500); } } }
3、在清单文件AndroidManifest.xml中配置Service
<service
android:name=".AudioService" />
相关文章推荐
- Android多媒体学习六:利用Service实现背景音乐的播放
- Android多媒体学习五:利用Service实现背景音乐的播放
- Android多媒体学习六:利用Service实现背景音乐的播放
- Android多媒体学习六:利用Service实现背景音乐的播放
- Android多媒体学习六:利用Service实现背景音乐的播放
- Android多媒体学习六:利用Service实现背景音乐的播放
- Android多媒体学习六:利用Service实现背景音乐的播放
- Android多媒体学习六:利用Service实现背景音乐的播放
- android 利用Service实现背景音乐的播放
- Android开发利用service实现背景音乐播放
- Android service学习总结和利用service实现的后台音乐播放功能
- 利用Service实现背景音乐的播放
- 利用Service实现背景音乐的播放
- android 利用 service 实现音乐播放
- 利用Service实现背景音乐的播放
- Android的多媒体技术——MediaPlayer实现音频与视频的播放
- Android实现音乐的播放与停止(Service的初级应用)
- android实现开机自动播放音乐实例(Broadcast、Service)
- Android_播放器_利用Service通过MediaPlayer播放歌曲并完成歌词同步绘制
- Android多媒体学习十:利用AudioRecord类实现自己的音频录制程序