




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
PAGEPAGE2青岛理工大学课程实验报告课程名称嵌入式软件设计与开发班级实验日期姓名学号实验成绩实验名称音乐播放器实验实验目的及要求(1)掌握调用媒体播放器的方法;(2)掌握Service的使用方法;(3)掌握绑定方式启动服务的方法。实验环境Win7,Eclipse实验内容1.创建一个后台服务,并以绑定方式启动服务(1)定义一个Service;(2)注册Service;(3)定义ServiceConnection对象,用于绑定方式启动服务;2.在Service中播放音乐(1)定义并初始化媒体播放器对象(2)定义操作媒体播放器的方法;3.在Activity中以绑定方式启动服务算法描述及实验步骤1.新建Android项目,编写页面代码2.定义一个Service继承Service类,重写方法3.注册Sercice4.编写代码已绑定方式启动Service调试过程及实验结果总结这次的实验主要是为了掌握以绑定方式启动服务并附加写对音乐播放器进行操作的代码,总体较为简单.附录MainActivity.javapackagecom.example.music;importandroid.app.Activity;importandroid.content.ComponentName;importandroid.content.Context;importandroid.content.Intent;importandroid.content.ServiceConnection;importandroid.media.AudioManager;importandroid.media.MediaRouter.VolumeCallback;importandroid.os.Bundle;importandroid.os.IBinder;importandroid.view.Menu;importandroid.view.MenuItem;importandroid.view.View;importandroid.view.View.OnClickListener;importandroid.widget.Button;importandroid.widget.Toast;publicclassMainActivityextendsActivity{ musicServicemyService=null; booleanisBinded=false; privateButtonstartService; privateButtonstopService; privateButtonplay; privateButtonstop; privateButtonincrease; privateButtonreduce; //判断是否是首次点击播放按钮 privateBooleanisFirst=true; //判断是否处于暂停状态 privateBooleanisPlay=true; //建立连接对象 privateServiceConnectionserviceConnection=newServiceConnection(){ @Override publicvoidonServiceConnected(ComponentNamename,IBinderservice){ //TODOAuto-generatedmethodstub myService=((musicService.LocalBinder)service).getService();//获取Service对象 if(myService==null){ Toast.makeText(MainActivity.this,"获取Service对象失败!",Toast.LENGTH_SHORT).show(); } } @Override publicvoidonServiceDisconnected(ComponentNamename){ //TODOAuto-generatedmethodstub myService=null;//置空Service对象 } }; @Override protectedvoidonCreate(BundlesavedInstanceState){ super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //AudioManager类位于android.Media包中,该类提供访问控制音量和钤声模式的操作。 //通过getSystemService(Context.AUDIO_SERVICE)方法获得AudioManager实例对象。 //AudioManageraudiomanage=(AudioManager)context.getSystemService(Context.AUDIO_SERVICE); //audiomanager就是我们定义的控制系统声音的对象。 //下面一行必须放在onCreate中实现,否则会出现在onCreate之前要求获得服务的错误 finalAudioManageraudiomanage=(AudioManager)getSystemService(Context.AUDIO_SERVICE); //最大音量// finalintmaxVolume=audiomanage.getStreamMaxVolume(AudioManager.STREAM_MUSIC); startService=(Button)findViewById(R.id.startService); stopService=(Button)findViewById(R.id.endService); play=(Button)findViewById(R.id.playMusic);stop=(Button)findViewById(R.id.stopMusic);increase=(Button)findViewById(R.id.increaseVoice);reduce=(Button)findViewById(R.id.reduceMusic);startService.setOnClickListener(newOnClickListener(){ @Override publicvoidonClick(Viewv){ //TODOAuto-generatedmethodstub if(!isBinded){ Intentintent=newIntent(); intent.setAction("com.example.music.musicService"); if(bindService(intent,serviceConnection,Context.BIND_AUTO_CREATE)){ isBinded=true; Toast.makeText(MainActivity.this,"绑定成功",Toast.LENGTH_SHORT).show(); } } } });stopService.setOnClickListener(newOnClickListener(){ @Override publicvoidonClick(Viewv){ //TODOAuto-generatedmethodstub if(isBinded){ unbindService(serviceConnection); isBinded=false; Toast.makeText(MainActivity.this,"撤销绑定成功!",Toast.LENGTH_SHORT).show(); } } });play.setOnClickListener(newOnClickListener(){ @Override publicvoidonClick(Viewv){ //TODOAuto-generatedmethodstub if(!isBinded){ Toast.makeText(MainActivity.this,"未绑定服务!",Toast.LENGTH_SHORT).show(); return; } if(isFirst){ isFirst=false; isPlay=true; play.setText("暂停");//状态改为暂停 myService.startPlay();//调用Service的方法完成服务 intcurrentVolume=audiomanage.getStreamVolume(AudioManager.STREAM_MUSIC); System.out.println("play:"+currentVolume); }elseif(!isPlay){ isPlay=true; play.setText("暂停"); myService.restartPlay(); }else{ isPlay=false; play.setText("播放"); myService.pausePlay(); } } });stop.setOnClickListener(newOnClickListener(){ @Override publicvoidonClick(Viewv){ //TODOAuto-generatedmethodstub if(!isBinded){ Toast.makeText(MainActivity.this,"未绑定服务!",Toast.LENGTH_SHORT).show(); return; } isFirst=true; isPlay=false; play.setText("播放"); myService.stopPlay(); } });increase.setOnClickListener(newOnClickListener(){ @Override publicvoidonClick(Viewv){ //TODOAuto-generatedmethodstub if(!isBinded){ Toast.makeText(MainActivity.this,"未绑定服务!",Toast.LENGTH_SHORT).show(); return; }// 增加声音三种种方法:// 方法一:// audiomanage.adjustVolume(AudioManager.ADJUST_RAISE,0);//增加音量// 方法二: //获得当前音量大小// intcurrentVolume=audiomanage.getStreamVolume(AudioManager.STREAM_MUSIC);// if(currentVolume<maxVolume){// currentVolume++;// audiomanage.setRingerMode(currentVolume);// audiomanage.setStreamVolume(AudioManager.STREAM_MUSIC,currentVolume,0);//// System.out.println("increase:"+currentVolume);// }// 方法三:可以显示声音条 audiomanage.adjustStreamVolume(AudioManager.STREAM_MUSIC,AudioManager.ADJUST_RAISE,AudioManager.FX_FOCUS_NAVIGATION_UP); } });reduce.setOnClickListener(newOnClickListener(){ @Override publicvoidonClick(Viewv){ //TODOAuto-generatedmethodstub if(!isBinded){ Toast.makeText(MainActivity.this,"未绑定服务!",Toast.LENGTH_SHORT).show(); return; }// 降低声音三种方法:// 方法一:// audiomanage.adjustVolume(AudioManager.ADJUST_LOWER,0);//降低音量// 方法二:// intcurrentVolume=audiomanage.getStreamVolume(AudioManager.STREAM_MUSIC);// if(currentVolume>0){// currentVolume--;// audiomanage.setRingerMode(currentVolume);// audiomanage.setStreamVolume(AudioManager.STREAM_MUSIC,currentVolume,0);// System.out.println("reduce:"+currentVolume);// }// 方法三:可以显示进度条 audiomanage.adjustStreamVolume(AudioManager.STREAM_MUSIC,AudioManager.ADJUST_LOWER,AudioManager.FX_FOCUS_NAVIGATION_UP); } }); } @Override publicbooleanonCreateOptionsMenu(Menumenu){ //Inflatethemenu;thisaddsitemstotheactionbarifitispresent. getMenuInflater().inflate(R.menu.main,menu); returntrue; } @Override publicbooleanonOptionsItemSelected(MenuItemitem){ //Handleactionbaritemclickshere.Theactionbarwill //automaticallyhandleclicksontheHome/Upbutton,solong //asyouspecifyaparentactivityinAndroidManifest.xml. intid=item.getItemId(); if(id==R.id.action_settings){ returntrue; } returnsuper.onOptionsItemSelected(item); }}musicService.javapackagecom.example.music;importjava.io.IOException;importandroid.app.Service;importandroid.content.Intent;importandroid.media.MediaPlayer;importandroid.os.Binder;importandroid.os.IBinder;publicclassmusicServiceextendsService{ //建立IBinder内部辅助对象用于获取Service对象 privatefinalIBindermBinder=newLocalBinder(); //媒体播放器对象 privateMediaPlayerplayer=null; //辅助内部类--用于获取Service对象 publicclassLocalBinderextendsBinder{ musicServicegetService(){ System.out.println("Service-->LocalBinder-->getService"); returnmusicService.this;//返回当前的Service对象 } } @Override publicIBinderonBind(Intentintent){ //TODOAuto-generatedmethodstub returnmBinder; } @Override publicvoidonCreate(){ //TODOAuto-generatedmethodstub super.onCreate(); //创建媒体播放器对象 player=newMediaPlayer(); } @Override publicbooleanonUnbind(Intentintent){ //TODOAuto-generatedmethodstub //如果正在播放则停止 if(player.isPlaying()){ player.stop(); } //释放播放器对象 player.release(); player=null; returnsuper.onUnbind(intent); } @Override publicvoidonRebind(Intentintent){ //TODOAuto-generatedmethodstub super.onRebind(intent); } @Override publicvoidonDestroy(){ //TODOAuto-generatedmethodstub super.onDestroy(); } @SuppressWarnings("deprecation") @Override publicvoidonStart(Intentintent,intstartId){ //TODOAuto-generatedmethodstub super.onStart(intent,startId); } //开始播放音乐 publicvoidstartPlay(){ try{ player.reset(); player.setDataSource("/sdcard/abcd.mp3");//设置mp3文件的地址 player.prepare();// player.setVolume(leftVoice,rightVoice);//设置音量-左右声道的音量 player.start(); }catch(IllegalArgumentExceptione){ //TODOAuto-generatedcatchblock e.printStackTrace(); }catch(IllegalStateExceptione){ //TODOAuto-generatedcatchblock e.printStackTrace(); }catch(IOExceptione){ //TODOAuto-generatedcatchblock e.printStackTrace(); } } //暂停播放 publicvoidpausePlay(){ player.pause(); } //继续播放 publicvoidrestartPlay(){ player.start(); } //停止播放 publicvoidstopPlay(){ player.stop(); }}
宝贝计划专卖店创业计划书企业名称:__宝贝计划婴儿用品专卖店创业者姓名:_________________________________________日期:__________________________________________通信地址:_________________________________________邮政编码:__________________________________________电话:____________________________________________传真:__________________________________________电子邮件:__________________________________________目录一、项目介绍------------------------------------3二、市场分析------------------------------------3三、成本预算------------------------------------3四、盈利状况------------------------------------4五、市场风险预测----------------------------------4六、人员机构配置----------------------------------5七、市场营销策略----------------------------------5宝贝计划婴儿用品专卖店计划书项目介绍:项目名称:宝贝计划婴儿用品专卖店经营范围:以出租和出售婴幼儿童车、童床、儿童玩具、婴儿日常用品和孕前孕后的孕妇培训为主,兼做婴儿游泳馆和家政服务信息等。项目投资:10—14万元回收成本期限:15个月(预计)样板店地址:桂林市兴安县(具体地址待定)项目概况:先组建宝贝计划婴儿用品总店,在此基础上,创办一个以片为依托的婴儿用品连锁店。企业宗旨:一切为了宝贝计划。二、市场分析:(一)市场需求分析:1、玩具是孩子的天使,孩子是父母的心肝宝贝。父母对自己孩子的投入是心甘情愿的,但由于各种原因,又不能完全满足孩子对玩具的占有欲望。同时,由于孩子的天性,对玩具喜新厌旧,一个几百元的玩具玩几天就不感兴趣了。而市场上层出不穷的高价玩具,都是孩子永不满足的需求,这样促使了儿童玩具出租行业的萌芽和发展。比如婴幼儿大都需要童车,低档童车价格大约在60—100元,中档童车价格大约在150~300元之间,高档一点的在500元以上,而一部质量较好的童车起码可以用三五年,家庭购买的童车平均使用期为一年左右,不买童车不行,买吧,用完后又很难处理,而且又浪费,所以本店的特色是——既可以出租而可以出售的方法。相似的用品不仅仅局限于童车童床,还有学步车等等。如果开一间婴幼儿童童车童床出租出售店,可以给消费一般的家庭带来实惠,生意肯定兴隆。2、孕前孕后培训也是一个新兴的行业,据市场调查,在此之前没有任何商家以店的形式对准爸爸和准妈妈进行。因为现在的准妈妈准爸爸无法科学的照顾自己的孩子和孕妇,通过培训后,使其能够正确的操作。(二)目标群体分析:儿童车、童床、婴儿日常用品0~2岁的婴儿。由于出售的儿童车、童床、婴儿日常用品品种繁多,档次繁多,适合于各种不同层次的家庭孩子。选择在县级以上城市开店,可以说明该城市的人均家庭状况一般在小康水平或小康水平以上,对出租玩具的承受能力均没有任何问题。孕妇的孕前孕后培训主要是针对现在准妈妈准爸爸开设的课程,主要是产前的身体锻炼,饮食合理搭配及科学的锻炼;产后的小孩护理及营养搭配,常见的小孩注意事项等方面知识,让准妈妈准爸爸们科学的呵护自己的小孩。(三)竞争对手的分析:目前兴安县出售出租婴幼儿童车、童床、儿童玩具、婴儿日常用品为一体的公司或店铺寥寥无几,现在的店一本是单一性的,不是集中为一体的,而且这样做也是一个新兴的行业,我们应该有一种先人为主的优势,特别由总店然后发展成一片区为分店的一家连锁店。三、成本预算(一)样板店的成本预算15000元样板店启动资金大约在7万元左右,具体安排:(1)办理工商、税务登记等费用:200元(2)店铺租金及押金:9000元(3)装修:20000元(4)工资(1个月):8000元(5)购买产品及维修保养费用:50000元(6)咨询顾问及资料费:5000元(7)公司其他开支:10000元(水费、电费、管理费、卫生费及流动资金得等)总计:12000元左右(估计)注:总预算里面还包括员工的首期上岗培训费用。四、盈利状况(一)、连锁总店业务收入来源:A、出售婴幼儿童车、童床、儿童玩具、婴儿日常用品。现在很大部分的家庭里面只有一个小孩,不管是男孩还是女孩,都是家长们的掌上明珠,家长们都舍得为自己的子女花钱,针对这一现象,本店采取了出售其婴幼儿童车、童床、儿童玩具、婴儿日常用品,来满足每一个小孩家庭的需求,相对这样出租婴幼儿童车、童床、儿童玩具来说,这样显得奢侈,但是很多家长为了孩子,还是舍得花钱。B、出租婴幼儿童车、童床。现在很多家庭出生的小孩只有一个,如果购买一个童车或者童床势必会造成浪费,本店将为准妈妈们准备了童车童床的出租,这样相对来说,就要节省一点开支,这也是资源的合理利用。C、孕前孕后的孕妇培训。现在的准妈妈准爸爸对孕前的营养饮食搭配、孕前的护理和孕后的营养饮食搭配、小孩的照顾等各方面的培训,培训费是按每节课多少钱来计算,顾客如果使用会员卡,可享受月底结算和打折优惠的特权。D、婴儿游泳馆。婴儿游泳是国内兴起的一个行业,在国外非常常见。因为婴儿在游泳时,可以对其全身的肌肉关节韧带均得到运动,心理放松,神情喜悦,运动所带来的外周刺激反馈至大脑皮层,对脑神经的发育有着良好的作用。E、家政服务信息。本店与当地的家政信息公司进行合作,为各位需要家政服务的家庭提供家政信息服务,盈利在于与家政公司合作的提成。(二)、连锁店业务收入的次要来源:A、本里本店的会员卡是本店次要收入来源,会员卡有效期为1年,然后经过续费后,方可继续使用,会员卡办理卡费是20元,续费费是10元,本卡将采取实行实名制,实行一卡专用。B、赔偿金收入(因顾客归还玩具时,有些玩具可能会由于关键部位的断裂,重要配件的丢失损坏等原因,按照我们的赔偿比例表,按比例赔偿)。五、市场风险预测:(一)竞争者的出现,是本店主要的市场风险当一个项目被发现巨大市场空间时,必会引来竞争者,为了能让企业在市场中生存和壮大,因此在推出玩具出租加盟样板店时,要实行五个统一的管理模式(即统一形象设计,统一宣传资料,统一会员卡销售,统一营销管理,统一售后服务)建立自身的品牌。提高服务质量和准确掌握市场行情也是增强竞争力等办法。(二)玩具、童车、童床是对儿童的伤害最大,是本行业的最大风险所在。为了避免此类风险,可采取以下三种方法:(1)进货渠道严格把关,明确与进货商或厂家的责任关系。(2)向小孩和家长详细说明玩具的使用说明;(3)明确与被租方的责任关系。(三)对玩具损害程度的鉴定,是处理客户关系的一大风险必须从日常的经验和生产厂家,逐步完善玩具损害程度的鉴定标准,明细化与客户的责任关系。(四)、产品售后服务:产品售后服务是关键。本店将对购买和出租
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 软考网络应用实例分享试题及答案
- 微生物学期末试题及答案
- 网络工程师前沿技术应考试题及答案
- 影像科面试题及答案
- 无碳小车测试题及答案
- 篮球教资面试题目大全及答案
- 与动物的亲密接触话题作文(11篇)
- 机电工程安全管理试题及答案
- 软考网络工程师试题及答案新手指南2025年
- 公共政策与社区治理试题及答案
- 人工智能赋能教师数字素养提升
- C919机组培训-导航系统
- 药理学知到智慧树章节测试课后答案2024年秋哈尔滨商业大学
- 智能病历质控系统需求说明
- 山东省烟台市莱州市一中2025届高考数学押题试卷含解析
- 2023年高考真题-生物(辽宁卷) 含答案
- 叉车出租行业市场调研分析报告
- 专题02代数推理题(真题2个考点模拟16个考点)(原卷版+解析)
- 变压器维修投标方案
- 2025届山东师范大学附中高考适应性考试历史试卷含解析
- 四川省高职单招餐饮类《中式烹饪技艺》复习备考试题库-下(判断、简答题)
评论
0/150
提交评论