当前位置:文档之家› 安卓Android广播、线程、服务与多媒体开发实验报告

安卓Android广播、线程、服务与多媒体开发实验报告

@Override
publicvoidonCreate() {
//TODOAuto-generated method stub
lists= MusicList.getMusicData(getApplicationContext());
SeekBarBroadcastReceiver receiver =newSeekBarBroadcastReceiver();
}else{//单曲播放
player.reset();
Intent intent =newIntent("pletion");
sendBroadcast(intent);
playMusic(_id);
}
}
});
player.setOnErrorListener(newOnErrorListener() {
player.prepare();
}catch(IllegalArgumentException e) {
//TODOAuto-generated catch block
e.printStackTrace();
}catch(SecurityException e) {
//TODOAuto-generated catch block
String url = m.getUrl();
Uri myUri = Uri.parse(url);
player=newMediaPlayer();
player.reset();
player.setAudioStreamType(AudioManager.STREAM_MUSIC);
try{
player.setDataSource(getApplicationContext(), myUri);
IntentFilter filter =newIntentFilter(".karl.seekBar");
this.registerReceiver(receiver, filter);
newThread(this).start();
super.onCreate();
}
@Override
publicstaticintplaying_id= 0;
publicstaticBooleanplaying=false;
@Override
publicIBinder onBind(Intent arg0) {
//TODOAuto-generated method stub
returnnull;
}
实验报告
(2013/2014学年第一学期)
课程名称
软件技术系列课程(Android基础)
实验名称
Android广播、线程、服务与多媒体开发
实验时间
2013

12

9

指导单位
计算机学院、诚迈科技(南京)公司
指导教师
学生姓名
班级学号
学院(系)
计算机学院
专业
软件工程(计算机软件与服务外包)
成绩
批阅人
王彦
player=null;
}
if(id >=lists.size() - 1) {
_id=lists.size() - 1;
}elseif(id <= 0) {
_id= 0;
}
Music m =lists.get(_id);
String url = m.getUrl();
Uri myUri = Uri.parse(url);
player=newMediaPlayer();
player.reset();
player.setAudioStreamType(AudioManager.STREAM_MUSIC);
try{
player.setDataSource(getApplicationContext(), myUri);
player.prepare();
lrcList=mLrcProcess.getLrcContent();
MusicActivity.lrc_view.setSentenceEntities(lrcList);
//切换带动画显示歌词
MusicActivity.lrc_view.setAnimation(AnimationUtils.loadAnimation(
publicvoidonStart(Intent intent,intstartId) {
//TODOAuto-generated method stub
String play = intent.getStringExtra("play");
_id= intent.getIntExtra("id", 1);
通过CommandReceiver类实现接受前台Activity发送的播放命令的Intent。在CommandReceiver类中,有后台Service注册的接受前台控制命令Intent的Receiver,广播播放状态变化的Intent
代码
publicclassMusicServiceextendsServiceimplementsRunnable {
e.printStackTrace();
}
player.start();
returnfalse;
}
});
}
privateclassSeekBarBroadcastReceiverextendsBroadcastReceiver {
@Override
publicvoidonReceive(Context context, Intent in e) {
//TODOAuto-generated catch block
e.printStackTrace();
}catch(IOException e) {
//TODOAuto-generated catch block
e.printStackTrace();
MusicService.this, R.anim.alpha_z));
//启动线程
mHandler.post(mRunnable);
// ///////////////////////初始化歌词配置/////////////////////// //
if(null!=player) {
player.release();
//TODOAuto-generated method stub
intseekBarPosition = intent.getIntExtra("seekBarPosition", 0);
// System.out.println("--------"+seekBarPosition);
player.seekTo(seekBarPosition *player.getDuration() / 100);
intid = intent.getIntExtra("id", 0);
playMusic(id);
}elseif(play.equals("rewind")) {
intid = intent.getIntExtra("id", 0);
playMusic(id);
}elseif(play.equals("forward")) {
}catch(IllegalArgumentException e) {
//TODOAuto-generated catch block
e.printStackTrace();
}catch(SecurityException e) {
//TODOAuto-generated catch block
e.printStackTrace();
// ///////////////////////初始化歌词配置/////////////////////// //
mLrcProcess=newLrcProcess();
//读取歌词文件
mLrcProcess.readLRC(lists.get(_id).getUrl());
//传回处理后的歌词文件
//下一首
if(MusicActivity.isLoop==true) {
player.reset();
Intent intent =newIntent("pletion");
sendBroadcast(intent);
_id=_id+ 1;
playMusic(_id);
@Override
publicbooleanonError(MediaPlayer mp,intwhat,intextra) {
//TODOAuto-generated method stub
if(null!=player) {
player.release();
player=null;
}
Music m =lists.get(_id);
privateMediaPlayerplayer;
privateList<Music>lists;
publicstaticint_id= 1;//当前播放位置
publicstaticBooleanisRun=true;
publicLrcProcessmLrcProcess;
publicLrcViewmLrcView;
intid = intent.getIntExtra("id", 0);
playMusic(id);
相关主题