音樂播放器實(shí)習(xí)報(bào)告

上傳人:仙*** 文檔編號:32713124 上傳時(shí)間:2021-10-15 格式:DOC 頁數(shù):20 大?。?13KB
收藏 版權(quán)申訴 舉報(bào) 下載
音樂播放器實(shí)習(xí)報(bào)告_第1頁
第1頁 / 共20頁
音樂播放器實(shí)習(xí)報(bào)告_第2頁
第2頁 / 共20頁
音樂播放器實(shí)習(xí)報(bào)告_第3頁
第3頁 / 共20頁

下載文檔到電腦,查找使用更方便

15 積分

下載資源

還剩頁未讀,繼續(xù)閱讀

資源描述:

《音樂播放器實(shí)習(xí)報(bào)告》由會(huì)員分享,可在線閱讀,更多相關(guān)《音樂播放器實(shí)習(xí)報(bào)告(20頁珍藏版)》請?jiān)谘b配圖網(wǎng)上搜索。

1、武漢工程大學(xué)計(jì)算機(jī)科學(xué)與工程學(xué)院認(rèn)識實(shí)習(xí)報(bào)告專 業(yè)計(jì)算機(jī)科學(xué)與技術(shù)班 級學(xué) 號學(xué) 生 姓 名指 導(dǎo) 教 師陳艷(講師)實(shí) 習(xí) 時(shí) 間20142015學(xué)年第1學(xué)期2014.9.1至2014.9.5實(shí) 習(xí) 成 績武漢工程大學(xué)計(jì)算機(jī)科學(xué)與工程學(xué)院 制說明:1、 實(shí)習(xí)指導(dǎo)教師由學(xué)院校內(nèi)教師擔(dān)任,負(fù)責(zé)組織實(shí)習(xí)、學(xué)生管理、參加實(shí)習(xí)答辯、實(shí)習(xí)成績評定、給出實(shí)習(xí)評語等工作。2、 實(shí)習(xí)報(bào)告由武漢工程大學(xué)計(jì)算機(jī)科學(xué)與工程學(xué)院提供基本格式(適用于學(xué)院各專業(yè)),各專業(yè)教研室和指導(dǎo)教師可根據(jù)本專業(yè)特點(diǎn)及實(shí)習(xí)內(nèi)容做適當(dāng)?shù)恼{(diào)整,學(xué)生須按指導(dǎo)教師下達(dá)的實(shí)習(xí)報(bào)告格式認(rèn)真進(jìn)行填寫。3、 實(shí)習(xí)成績由指導(dǎo)教師根據(jù)學(xué)生的實(shí)習(xí)情況給出各

2、項(xiàng)分值及總評成績。4、 指導(dǎo)教師評語一欄由實(shí)習(xí)指導(dǎo)教師就學(xué)生在整個(gè)實(shí)習(xí)期間的表現(xiàn)給出客觀、全面的評價(jià),包括實(shí)習(xí)期間的表現(xiàn)、實(shí)習(xí)報(bào)告的質(zhì)量等。5、 實(shí)習(xí)報(bào)告正文字?jǐn)?shù)應(yīng)不少于5000字,實(shí)習(xí)日記字?jǐn)?shù)不少于300字/天。6、 實(shí)習(xí)報(bào)告正文中實(shí)習(xí)目的與任務(wù)、實(shí)習(xí)地點(diǎn)、實(shí)習(xí)內(nèi)容和要求等項(xiàng),可由指導(dǎo)教師統(tǒng)一給出。認(rèn)識實(shí)習(xí)成績評定表學(xué)生姓名: 學(xué)號: 班級: 類別總分值各項(xiàng)分值評分標(biāo)準(zhǔn)實(shí)際得分總得分備注實(shí)習(xí)表現(xiàn)3015按時(shí)參加各項(xiàng)實(shí)習(xí)活動(dòng),無曠課、遲到、早退等情況。15遵守實(shí)習(xí)單位紀(jì)律和安排,無違反實(shí)習(xí)單位規(guī)定的情況;聽從指導(dǎo)教師的安排,無不服從教師管理的現(xiàn)象。實(shí)習(xí)報(bào)告7020報(bào)告能對全過程的實(shí)習(xí)內(nèi)容進(jìn)行系

3、統(tǒng)的總結(jié),并能運(yùn)用所學(xué)專業(yè)知識對問題加以分析,并有一定的見解。20實(shí)習(xí)報(bào)告文字通順,內(nèi)容翔實(shí),論述充分、完整,結(jié)構(gòu)嚴(yán)謹(jǐn)合理。10具有收集、加工各種信息及獲得新知識的能力。10實(shí)習(xí)報(bào)告字?jǐn)?shù)符合相關(guān)要求,實(shí)習(xí)報(bào)告工整規(guī)范,整齊劃一。10實(shí)習(xí)日記(筆記)次數(shù)及內(nèi)容符合要求??傇u成績: 分補(bǔ)充說明: 指導(dǎo)教師: (簽字)日 期: 2014 年 9 月 日指導(dǎo)教師評語指導(dǎo)教師: (簽字)日 期: 2014 年 9 月 日武漢工程大學(xué)計(jì)算機(jī)科學(xué)與工程學(xué)院 認(rèn)識實(shí)習(xí)報(bào)告一、實(shí)習(xí)目的與任務(wù)認(rèn)識實(shí)習(xí)是信息技術(shù)專業(yè)學(xué)生在完成基礎(chǔ)課學(xué)習(xí)轉(zhuǎn)入到專業(yè)課學(xué)習(xí)階段的一個(gè)極其重要的實(shí)踐教學(xué)環(huán)節(jié)。其目的是通過實(shí)地參觀和聽取專業(yè)

4、報(bào)告等多種方式,使學(xué)生進(jìn)一步了解本專業(yè)及相關(guān)領(lǐng)域的發(fā)展現(xiàn)狀,以及相關(guān)產(chǎn)品的研發(fā)過程和管理手段。通過實(shí)習(xí),使學(xué)生通過軟件開發(fā)的實(shí)踐訓(xùn)練,進(jìn)一步掌握設(shè)計(jì)開發(fā)軟件的方法與技術(shù),學(xué)會(huì)數(shù)據(jù)的組織方法,提高軟件開發(fā)的實(shí)際能力,培養(yǎng)創(chuàng)造性的工程設(shè)計(jì)能力和分析、解決問題的能力。具體的任務(wù)包括:1深化已學(xué)的理論知識,完成理論到實(shí)踐的轉(zhuǎn)化,讓學(xué)生對軟件開發(fā)領(lǐng)域的最新技術(shù)有本質(zhì)的了解,并能熟練運(yùn)用。通過電子商務(wù)網(wǎng)購平臺的研發(fā),讓學(xué)生熟練操作各種開發(fā)平臺,并能按照CMM3規(guī)范,和軟件開發(fā)的流程開發(fā)一個(gè)小型項(xiàng)目;2提高分析和解決實(shí)際問題的能力,讓學(xué)生有高質(zhì)量的就業(yè)IT行業(yè)的機(jī)會(huì)。培養(yǎng)“開拓創(chuàng)新”能力。大力提倡和鼓勵(lì)在開

5、發(fā)過程中使用新方法、新技術(shù),激勵(lì)學(xué)生實(shí)踐的積極性和創(chuàng)造性,開拓思路,設(shè)計(jì)新算法、新創(chuàng)意,培養(yǎng)創(chuàng)造性的工程設(shè)計(jì)能力。3了解信息技術(shù)產(chǎn)品的研發(fā)過程、信息系統(tǒng)的設(shè)計(jì)、信息系統(tǒng)的技術(shù)與管理等專業(yè)知識;了解計(jì)算機(jī)、通信等相關(guān)領(lǐng)域的發(fā)展現(xiàn)狀和最新的科研成果,及在生產(chǎn)科研中的應(yīng)用;鞏固學(xué)生的理論知識,培養(yǎng)學(xué)生的實(shí)踐能力、創(chuàng)新能力,拓寬學(xué)生視野,樹立努力學(xué)習(xí)專業(yè)知識的信心,并為學(xué)習(xí)后續(xù)課程打下一定的實(shí)踐基礎(chǔ);4增強(qiáng)勞動(dòng)觀念,樹立正確的勞動(dòng)觀和價(jià)值觀。二、實(shí)習(xí)地點(diǎn)軟帝(Ruandy)信息科技有限公司,武漢光谷金融港三、實(shí)習(xí)內(nèi)容和要求本次實(shí)習(xí)在軟帝信息科技有限公司的實(shí)習(xí)基地進(jìn)行。要求學(xué)生在5天的實(shí)習(xí)期間,在教師的

6、指導(dǎo)下熟悉Java Android開發(fā)平臺,掌握APP開發(fā)的基本方法和技巧,完成一個(gè)小型APP的設(shè)計(jì)和開發(fā)。四、實(shí)習(xí)總結(jié)及分析1)、搭建Android開發(fā)環(huán)境Android需要運(yùn)行環(huán)境才能夠運(yùn)行,下面介紹Android的開發(fā)環(huán)境配置。搭建開發(fā)環(huán)境需要的軟件: 1. 操作系統(tǒng):Windows XP;2. 軟件包:Android SDK(Software Development kit Java Development kit) 、ADT(Android Development Tool) 3. IDE環(huán)境:Eclipse IDE+ADT Eclipse3.3以上 4. JDK:Java Runt

7、ime Environment虛擬機(jī) 、(JDK)Java Development kit 安裝步驟如下:第一步:安裝Java虛擬機(jī)sun-java6-jdk版本;第二步:安裝Eclipse3.5工具;第三步:安裝Android SDK;第四步:安裝Android ADT插件,將地址欄中選擇android-sdk-windows所在的目錄,點(diǎn)擊OK;單擊new按鈕,新建一個(gè)安卓虛擬機(jī),在name欄中輸入名字,將target選中,然后設(shè)置size,單擊create AVD按鈕,其中name欄是所創(chuàng)建虛擬機(jī)的名字,target欄是需要的ADT的版本,size用來設(shè)置安卓虛擬機(jī)的大小。單擊start

8、按鈕隨后單擊lanuch(執(zhí)行)按鈕,就會(huì)彈出安卓虛擬機(jī)界面。2)、Android 音樂播放器的工程Android工程基本結(jié)構(gòu)目錄包括:src (源代碼)、gen(Android系統(tǒng)自動(dòng)生成的常量)、Res(資源文件):主要存放程序界面的布局配置(.xml)文件和圖片資源。AndroidMainfes.xml 是四大組件的驅(qū)動(dòng)配置文件,有它的存在,Android程序的四大組件才可以正常的跳轉(zhuǎn)3)、Android相關(guān)組件activity 應(yīng)用表示層(基類activity)應(yīng)用程序中的每個(gè)屏幕都是通過繼承和擴(kuò)展基類activity來實(shí)現(xiàn)的。同一應(yīng)用中的每個(gè)activity是相互獨(dú)立的。程序啟動(dòng)后顯

9、示的第一幅畫面是應(yīng)用程序的第一個(gè)activity(默認(rèn)窗口),而后可以根據(jù)需要從這個(gè)activity啟動(dòng)另一個(gè)新的activity。activity利用view來實(shí)現(xiàn)應(yīng)用中的gui(用戶直接通過gui和應(yīng)用程序做交互)。activity窗口內(nèi)的可見內(nèi)容通過基類view提供。使用activity.setcontentview()方法設(shè)置當(dāng)前activity中的view對象。service 沒有可見的用戶界面,但能夠長時(shí)間運(yùn)行于后臺(基類service)。運(yùn)行于應(yīng)用程序進(jìn)程的主線程中,因此service不會(huì)阻塞其他組件和用戶界面。 service是不能自己啟動(dòng)的,必須通過context對象(如一個(gè)

10、activity)調(diào)用startservice或bindservice方法來啟動(dòng)(用這兩種方法啟動(dòng)的service的生命周期不同)。broadcast receiver 用戶接收廣播通知的組件(基類broadcastreceiver)。android中的廣播要么來自于系統(tǒng),要么來自普通應(yīng)用程序。很多事件都可能導(dǎo)致系統(tǒng)廣播,如手機(jī)所在時(shí)區(qū)發(fā)生變化,電池電量低,用戶改變系統(tǒng)語言設(shè)置等。來自普通應(yīng)用程序,如一個(gè)應(yīng)用程序通知其他應(yīng)用程序某些數(shù)據(jù)已經(jīng)下載完畢。content provider 為解決應(yīng)用程序間數(shù)據(jù)通信、共享的問題(基類contentprovider)在android中,每個(gè)應(yīng)用程序都是用

11、自己的用戶id并在自己的進(jìn)程中運(yùn)行。這樣的好處是,可以有效地保護(hù)系統(tǒng)及應(yīng)用程序,避免被其他不正常德應(yīng)用程序所影響,每個(gè)進(jìn)程都擁有獨(dú)立的進(jìn)程地址空間和虛擬空間。content provider可以將應(yīng)用程序特定的數(shù)據(jù)提供給另一個(gè)應(yīng)用程序使用。其數(shù)據(jù)存儲(chǔ)方式可以是android文件系統(tǒng)、sqlite數(shù)據(jù)庫或者其他合理的方式。當(dāng)數(shù)據(jù)需要在應(yīng)用程序間共享時(shí),我們就可以利用contentprovider為數(shù)據(jù)定義一個(gè)uri。之后,其他應(yīng)用程序?qū)?shù)據(jù)進(jìn)行查詢或者修改時(shí),只需要從當(dāng)前上下文對象獲得一個(gè)contentresolver, 然后傳入響應(yīng)的uri就可以了。intent 連接組件的紐帶。以上4種基本組

12、件中,除了content provider是通過content resolver激活外,其他3種組件activity、service和broadcast receiver都是由intent異步消息激活的。intent在不同的組件之間傳遞消息,將一個(gè)組件的請求意圖傳給另一個(gè)組件。因此,intent是包含具體請求信息的對象。intent是一種運(yùn)行時(shí)綁定(runtime binding)機(jī)制,它能夠在程序運(yùn)行的過程中連接兩個(gè)不同的組件。通過intent,你的程序可以向android表到某種請求或者意愿,android會(huì)根據(jù)意愿的內(nèi)容選擇適當(dāng)?shù)慕M件來處理請求。4)、 Android xml文件在安卓工

13、程中,大量使用了xml文件,比如界面布局文件,字符資源文件,風(fēng)格style文件,簡單圖形文件等。比如在界面布局文件中,通過指定控件的排列方式、間隔像素、對齊方式等,達(dá)到對頁面進(jìn)行布局的目的,同時(shí)使用特定編輯器,實(shí)時(shí)解析布局文件,到達(dá)所見即所得的目的。5)、程序界面activity類的設(shè)計(jì)程序的界面musictestactivity類是程序的主要部分,設(shè)計(jì)到界面所有控件的操作及設(shè)計(jì)、程序的流程控制及音樂播放的核心部分。 字段mediaplayer是音樂播放的核心變量,進(jìn)行音樂播放,處理器mhandle是對音樂播放流程進(jìn)行管理的變量,然后六個(gè)監(jiān)聽器是對按鈕及進(jìn)度條的變化進(jìn)行及時(shí)響應(yīng),剩下的都是輔助

14、標(biāo)記變量,標(biāo)記當(dāng)前播放信息,以及控制參數(shù)信息。播放音樂文件采用MediaPlayer,音樂的播放應(yīng)在后臺進(jìn)行,所以MediaPlayer應(yīng)該在一個(gè)Service中,用戶操作Activity上的控件,所以當(dāng)用戶操作時(shí),應(yīng)該通過Intent傳遞一些參數(shù)給Service,后者根據(jù)這些參數(shù)來控制MediaPlayer的播放。當(dāng)用戶進(jìn)行了操作,Service這時(shí)也響應(yīng)了操作以后,需要對Activity進(jìn)行的ui進(jìn)行更新,這時(shí)則需要通過BroadCastReciver來進(jìn)行對Activity的更新,同時(shí)Service需要通過一個(gè)Notification被置為前臺.BroadCastReciver因?yàn)橐獙Ω?/p>

15、新Activity,所以最好是作為需要被更新Activity的內(nèi)部類。6)、程序運(yùn)行效果在手機(jī)上運(yùn)行,程序可以流暢地播放音樂,無卡頓現(xiàn)象,實(shí)時(shí)準(zhǔn)確地顯示播放進(jìn)度信息,并調(diào)整控制音量大小。按鈕上一曲、下一曲及停止都可以正確地作用,暫停按鈕在音樂播放的時(shí)候可以正確顯示并作用,當(dāng)被點(diǎn)擊之后,即顯示為播放按鈕,此時(shí)點(diǎn)擊該按鈕也可以正確播放音樂。經(jīng)測試,最終得到的程序可以在手機(jī)上運(yùn)行,并無任何bug及程序不響應(yīng)現(xiàn)象。7)、關(guān)鍵代碼此代碼的主要功能是用來使音樂播放器在進(jìn)行播放前,從手機(jī)存儲(chǔ)設(shè)備中過濾出后綴名為MP3的文件,一層一層往下找,不限于根目錄下,知道最后沒有子文件夾為止。public class

16、MusicFilter implements java.io.FileFilterpublic boolean accept(File pathname) boolean b = false;if(pathname.isDirectory()b = true;elseif(pathname.getName().endsWith(.mp3)b = true;elseb = false;return b ;下面為程序主要代碼主要實(shí)現(xiàn)的功能為:設(shè)置播放器音量大小,音樂進(jìn)度拖拉條,上一首,下一首,播放,停止,歌曲時(shí)間顯示;public class MusicTestActivity extends L

17、istActivity /用來存放音樂文件路徑private ArrayList musiclist = new ArrayList();/用來存放音樂文件名字private ArrayList musicnamelist = new ArrayList();/音樂路徑.private final String MUSIC_PUTH = /sdcard/;/播放對象private MediaPlayer mediaPlayer; /音樂例表中當(dāng)前要播放音樂文件的索引private int currentListItem; /圖片按鈕的申明private ImageButton imageSto

18、p;private ImageButton imagePause;private ImageButton imageLast;private ImageButton imageStart;private ImageButton imageNext; /關(guān)于音量的變量private AudioManager audioManager ; /最大音量private int maxVolume; /當(dāng)前音量private int currentVolume; /音量拖動(dòng)條private SeekBar soundBar; /顯示時(shí)間的控件private TextView tv ; /音樂的進(jìn)度條pr

19、ivate SeekBar musicBar; /過慮器private MusicFilter mf;/用來標(biāo)記是否為播放狀態(tài) (0:初始狀態(tài),1:播放狀態(tài),2:暫停狀態(tài))private int falg = 0 ; Override public void onCreate(Bundle savedInstanceState) super.onCreate(savedInstanceState); setContentView(R.layout.main); mf = new MusicFilter();/播放對象初始化 mediaPlayer = new MediaPlayer(); /調(diào)

20、用音樂綁定方法 this.musicList();/將5個(gè)按鈕進(jìn)行初始化 imageStop = (ImageButton)this.findViewById(R.id.imageStop);/ imagePause = (ImageButton)this.findViewById(R.id.imagePause); imageLast = (ImageButton)this.findViewById(R.id.imageLast); imageStart = (ImageButton)this.findViewById(R.id.imageStart); imageNext = (Image

21、Button)this.findViewById(R.id.imageNext); /獲取系統(tǒng)聲音管理器 audioManager =(AudioManager) this.getSystemService(Context.AUDIO_SERVICE); /獲取系統(tǒng)聲音的最大值 maxVolume = audioManager.getStreamMaxVolume(AudioManager.STREAM_MUSIC); /獲取系統(tǒng)當(dāng)前的聲音值 大小 currentVolume = audioManager.getStreamVolume(AudioManager.STREAM_MUSIC);

22、/初始化音量拖動(dòng)條 soundBar = (SeekBar)this.findViewById(R.id.soundBar); /設(shè)置音量拖動(dòng)條的最大值 soundBar.setMax(maxVolume); /設(shè)置音量拖動(dòng)條的當(dāng)前值 soundBar.setProgress(currentVolume); /時(shí)間顯示控件初始化 tv = (TextView)this.findViewById(R.id.textView1); /把音樂播放進(jìn)度條進(jìn)行初始化 musicBar =(SeekBar) this.findViewById(R.id.musicBar); /調(diào)用listener方法 t

23、his.listener(); /遞歸.通過遞歸把sdcard里面所有的音樂文件中的路徑和音樂名字分區(qū)保存到(musiclist和musicnamelist)中 private void showInfo(String path)File f = new File(path);/先實(shí)現(xiàn)文件類對象File fileList = f.listFiles(mf);if(fileList!=null)for (int i = 0; i fileList.length; i+) if(fileListi.isFile()musiclist.add(fileListi.getAbsolutePath();

24、musicnamelist.add(fileListi.getName();if(fileListi.isDirectory()/判斷是否是一個(gè)目錄如果是就遞歸showInfo(fileListi.getPath(); private void musicList() /調(diào)用上面的遞歸方法.把sdcard里面的所有音樂文件的名字和路徑分區(qū)保存到(musiclist和musicnamelist)這兩個(gè)容器中 showInfo(MUSIC_PUTH); /1設(shè)置面板容器 2設(shè)置布局3音樂例表 ArrayAdapteradap=newArrayAdapter(MusicTestActivity.th

25、is, R.layout.musicitem, musicnamelist); /將適配器里面的數(shù)據(jù)添充到ListView(例表視圖)中 this.setListAdapter(adap); public String toTime(int time) time /= 1000;int minute = time / 60;int hour = minute / 60;int second = time % 60;minute %= 60;return String.format(%02d:%02d, minute, second); private void playMusic(String

26、 path) try mediaPlayer.reset();/先重置一下mediaPlayer.setDataSource(path);/設(shè)置音樂文件的路徑mediaPlayer.prepare();/準(zhǔn)備 mediaPlayer.setLooping(true);/循環(huán)播放 mediaPlayer.start();/開始播放/設(shè)置音樂拖動(dòng)度的當(dāng)前進(jìn)度初始值musicBar.setProgress(mediaPlayer.getCurrentPosition();/設(shè)置音樂拖動(dòng)條的最大值musicBar.setMax(mediaPlayer.getDuration();/System.out

27、.println(當(dāng)前正在播放的歌曲時(shí)間是: + mediaPlayer.getDuration();/顯示出來當(dāng)前音樂的時(shí)間tv.setText( toTime(mediaPlayer.getCurrentPosition() + / + toTime(mediaPlayer.getDuration();/當(dāng)歌曲開始播放時(shí).線程也開始運(yùn)行this.startProgressUpdate(); catch (IllegalArgumentException e) e.printStackTrace(); catch (IllegalStateException e) e.printStackT

28、race(); catch (IOException e) e.printStackTrace(); private Handler mHandle = new Handler()public void handleMessage(Message msg) /對音樂顯示時(shí)間每一秒鐘付值一次tv.setText( toTime(mediaPlayer.getCurrentPosition() + / + toTime(mediaPlayer.getDuration() );/不斷將音樂播放的位置賦值給MusicBar.musicBar.setProgress(mediaPlayer.getCur

29、rentPosition(); ; /申明一個(gè)線程類 public class th extends Thread /實(shí)例化此類的用戶會(huì)轉(zhuǎn)一個(gè)時(shí)間毫秒數(shù)進(jìn)來付值給i int i ; /構(gòu)造方法 public th(int i) this.i = i; /線程方法 public void run() while(true) try this.sleep(i); catch (InterruptedException e) e.printStackTrace();mHandle.sendEmptyMessage(0); /開辟Thread 用于定期刷新SeekBar,改變音樂時(shí)間 public v

30、oid startProgressUpdate() th t = new th(1000);/初始化線程類轉(zhuǎn)入1000毫秒 t.start();/開啟一個(gè)線程 /當(dāng)用戶返回時(shí)結(jié)束音樂并釋放音樂對象public boolean onKeyDown(int keyCode, KeyEvent event) if(keyCode = KeyEvent.KEYCODE_BACK)/音樂停止/mediaPlayer.stop();/可以釋放播放器占用的資源,一旦確定不再使用播放器時(shí)應(yīng)當(dāng)盡早調(diào)用它釋放資源。/mediaPlayer.release();/結(jié)束/this.finish();System.ex

31、it(0);return true;protected void onListItemClick(ListView l, View v, int position, long id) /獲取到當(dāng)前點(diǎn)擊的音樂文件索引 this.currentListItem = position ;/調(diào)用playMusic方法進(jìn)行音樂播放并傳入音樂的文件路徑this.playMusic(musiclist.get(currentListItem) ) ;imageStart.setImageResource(R.drawable.pause);falg = 1;private void listener()/音

32、樂播放進(jìn)度條的事件處理musicBar.setOnSeekBarChangeListener(new OnSeekBarChangeListener() public void onStopTrackingTouch(SeekBar seekBar) /把音樂播放進(jìn)度條的當(dāng)前位置 的值賦給mediaPlayer.mediaPlayer.seekTo(seekBar.getProgress();public void onStartTrackingTouch(SeekBar seekBar) public void onProgressChanged(SeekBar seekBar, int p

33、rogress,boolean fromUser) );/調(diào)聲音大小拖動(dòng)條的事件處理soundBar.setOnSeekBarChangeListener(new OnSeekBarChangeListener() public void onStopTrackingTouch(SeekBar seekBar) /System.out.println(-停止);public void onStartTrackingTouch(SeekBar seekBar) /System.out.println(開始-);public void onProgressChanged(SeekBar seekB

34、ar, int progress,boolean fromUser) /System.out.println(我的值在發(fā)生改變: + progress);/設(shè)置音量的大小audioManager.setStreamVolume(AudioManager.STREAM_MUSIC, progress,1););/1.為imageStart這個(gè)圖片按鈕添加一個(gè)單擊事件imageStart.setOnClickListener(new OnClickListener() public void onClick(View v) /用來標(biāo)記是否為播放狀態(tài) (0:初始狀態(tài),1:播放狀態(tài),2:暫停狀態(tài))if

35、( falg = 0 )/0:初始狀態(tài)/調(diào)playMusic方法進(jìn)行音樂 播放MusicTestActivity.this.playMusic(musiclist.get(currentListItem);/把播放狀態(tài)的圖片切換成暫停狀態(tài)的圖片imageStart.setImageResource(R.drawable.pause);falg = 1 ;else if(falg = 1)/1:播放狀態(tài)/暫停播放mediaPlayer.pause();/把暫停狀態(tài)的圖片切換成播放狀態(tài)的圖片imageStart.setImageResource(R.drawable.start);falg = 2

36、 ;else if(falg = 2)/2:暫停狀態(tài)mediaPlayer.start();/播放/把暫停狀態(tài)的圖片切換成播放狀態(tài)的圖片imageStart.setImageResource(R.drawable.pause);falg = 1;);/2.停止按鈕進(jìn)行事件處理()imageStop.setOnClickListener(new OnClickListener() public void onClick(View v) falg = 0 ;imageStart.setImageResource(R.drawable.start);mediaPlayer.seekTo(0);/mu

37、sicBar.setProgress(0);mediaPlayer.stop();/停止);/4.下一首imageNext.setOnClickListener(new OnClickListener() public void onClick(View v) falg = 1 ;imageStart.setImageResource(R.drawable.pause);currentListItem = (currentListItem+1)%musiclist.size();MusicTestActivity.this.playMusic(musiclist.get(currentList

38、Item););/5.上一首imageLast.setOnClickListener(new OnClickListener() public void onClick(View v) falg = 1 ;imageStart.setImageResource(R.drawable.pause);currentListItem = (currentListItem-1+musiclist.size()%musiclist.size();MusicTestActivity.this.playMusic(musiclist.get(currentListItem);); 五、實(shí)習(xí)體會(huì)5天的實(shí)習(xí)生活

39、轉(zhuǎn)眼就已過去,在這幾天里,我們都有所收獲,不管是技能上還是認(rèn)識上都有所提升。5天的時(shí)間,我熟悉了android系統(tǒng)的起源和發(fā)展,掌握了android的工作方式并搭建起了android開發(fā)的環(huán)境。在大二已經(jīng)接觸學(xué)習(xí)了java語言的基礎(chǔ)上學(xué)習(xí)android開發(fā),相對來說輕松了許多。Java的基礎(chǔ)語法,面向?qū)ο蟮木幊谭椒ê退枷?,消息傳遞都有點(diǎn)熟悉。期間我學(xué)著建立android工程并做一些簡單的編程和開發(fā),包括熟悉android開發(fā)環(huán)境,android工程中各個(gè)文件及其作用,到簡單的界面布局和控件使用。在這個(gè)過程中老師耐心給我們講解,有什么問題、不懂的地方老師也會(huì)幫助解決,所以此次報(bào)告的完成里不開老師

40、的支持。然后實(shí)習(xí)期間,我們得以初步了解我們所學(xué)專業(yè)的就業(yè)前景和工作環(huán)境,以及上班后的薪資待遇,還有關(guān)于選定方向去學(xué)習(xí)哪種語言的問題,這大概是很多同學(xué)都很迷惑的問題,大學(xué)學(xué)習(xí)的語言確實(shí)很多,就目前而言我們就學(xué)習(xí)了c、c+、Java,那么這么多的語言我們該如何取舍呢,要想在短期內(nèi)精通幾門語言無疑是相當(dāng)難的,所以老師給我們的建議是選擇一門語言,盡量在一種語言上有所突出,不然如果學(xué)的太雜而零散對找工作是不利的,所以鑒于這一點(diǎn),我們應(yīng)該暨早確定自己主修的方向。還有是關(guān)于考研的事,現(xiàn)階段大家都很困惑,對于學(xué)習(xí)計(jì)算機(jī)的人來說考研的意義到底大不大,關(guān)于這個(gè)問題我也獲得了初步的認(rèn)識,考研也是一個(gè)學(xué)習(xí)的過程,在這

41、個(gè)過程中自己的技術(shù)和熟練度當(dāng)然會(huì)有所提高,同時(shí)又擁有了更高的文憑,有它有利的一面。實(shí)習(xí)是學(xué)生了解和認(rèn)識企業(yè)事業(yè)單位對專業(yè)人才需求的重要途徑,是學(xué)生進(jìn)入職場之前,增加對專業(yè)認(rèn)識的一個(gè)必不可少的學(xué)習(xí)階段。通過實(shí)習(xí),增進(jìn)對從事本專業(yè)的自豪感以及責(zé)任感,選好入職方向,做好人生職業(yè)規(guī)劃。為畢業(yè)之后能夠進(jìn)入工作狀態(tài)并且能夠更好地工作,打好一定的基礎(chǔ),所以此次實(shí)習(xí)對自己來說是一次很好的鍛煉。最后這個(gè)音樂播放器程序還有很多不足之處,比如沒有實(shí)現(xiàn)在點(diǎn)擊歌曲是獲得歌曲的名字顯示在界面上,沒有同步顯示歌詞等功能,希望以后有機(jī)會(huì)逐步完善。附錄:實(shí)習(xí)日記2014年9月1日星期一這是實(shí)習(xí)的第一天,一大早我們來到了實(shí)習(xí)的公

42、司軟帝,老師短暫的自我介紹之后,我們的實(shí)習(xí)生活正式拉開序幕。與學(xué)校不同的是老師是通過廣播授課,比起學(xué)校要費(fèi)力的盯著投影的確方便很多。如慣例,初次學(xué)習(xí)當(dāng)然是從最基本的學(xué)起,老師慢慢進(jìn)入主題,天的實(shí)習(xí),我們需要學(xué)習(xí)如何進(jìn)行Android軟件的開發(fā),首先老師給我們講述Android的起源,Android一詞的本義指“機(jī)器人”,同時(shí)也是Google于2007年11月5日宣布的基于Linux平臺的開源手機(jī)操作系統(tǒng)的名稱,該平臺由操作系統(tǒng)、中間件、用戶界面和應(yīng)用軟件組成,號稱是首個(gè)為移動(dòng)終端打造的真正開放和完整的移動(dòng)軟件。Android本是一家公司的名稱,這家公司的創(chuàng)始人名叫Andy Rubin。Andy

43、 Rubin創(chuàng)立了兩個(gè)手機(jī)操作系統(tǒng)公司:Danger和Android。Danger以5億美元賣給微軟,成為了今天的Kin,Android以4千萬美元賣給Google。的優(yōu)點(diǎn)有開放性、應(yīng)用程序相互平等、應(yīng)用程序之間溝通無界限和快速方便的應(yīng)用程序開發(fā)。接著我們學(xué)習(xí)了Android開發(fā)環(huán)境的配置,按照老師的要求新建一個(gè)項(xiàng)目,學(xué)習(xí)過程中,我第一次見識了類似于我們手機(jī)界面的Android開發(fā)虛擬環(huán)境看見這樣一個(gè)東西,同學(xué)們都非常興奮,接下來的幾天我們的任務(wù)是做一個(gè)Android軟件。2014年9月2日星期二今天我們的主要任務(wù)是從開發(fā)工具到基本語法,主要是配置安卓SDK環(huán)境,建立安卓工程。接著老師給我們講

44、了Android工程中的配置文件,主要包括R.java,main.xml,string.xml文件。其中R.java中的內(nèi)容為自動(dòng)生成,無法對其進(jìn)行修改,在增加或者進(jìn)行修改代碼時(shí)會(huì)報(bào)錯(cuò)。string類給string.xml里面的鍵值生成的ID main.xml文件, 控制Activity中空間的位置,每個(gè)Activity對應(yīng)一個(gè)此布局文件 string.xml,存放鍵值對,一般用在程序的多語言版本切換(多個(gè)文件,鍵一樣,值不同)String.xml用來把應(yīng)用中出現(xiàn)的文字單獨(dú)存放在string.xml文中。這樣在進(jìn)行修改的時(shí)候就不用修改程序內(nèi)容。另外一方面為了減少應(yīng)用的體積,降低數(shù)據(jù)的冗余。Ma

45、in.xml文件用來對界面進(jìn)行布局。XML布局資源必須被存儲(chǔ)在項(xiàng)目目錄的/res/layout下。另外的還有strc目錄用來存放源文件代碼,gen目錄是ADT插件生成的文件(自動(dòng)生成),assets目錄存放資源文件目錄不會(huì)再R.java中生成ID,res目錄存放資源文件目錄,這里面的每個(gè)文件或值都會(huì)在R.java中生成一個(gè)ID,AndroidManifest.xml目錄是整個(gè)應(yīng)用程序配置文件,儲(chǔ)存一些包名,版本號,程序圖標(biāo)程序標(biāo),defaultproperties目錄-檢查版本文件,自動(dòng)生成,不能修改res、layout目錄防止布局文件(xml文件),每個(gè)Activity對應(yīng)一個(gè)xml文件,r

46、es/value目錄放置存儲(chǔ)值的文件。 2014年9月3日星期三今天的實(shí)習(xí)主要是接著昨天講的main.xml文件,講述Android中的各種布局方式,時(shí)間的關(guān)系,今天只講述了一種布局方式,線性布局方式。線性布局在屏幕上垂直地或水平地組織用戶界面控件或者小工具。線性布局是最簡單,Android開發(fā)者使用得最多的布局類型之一。線性布局的作用就像它的名字一樣,當(dāng)布局方向設(shè)置為垂直時(shí),它里面的所有子控件被組織在同一列上。當(dāng)布局方向設(shè)置為水平時(shí),所有子控件被組織在一行中。另外講的是用oncreatelisten()設(shè)置監(jiān)聽。然后設(shè)置圖片,進(jìn)行設(shè)置圖片上一張,下一張,以及設(shè)置圖片的透明度,首先選好圖片進(jìn)行

47、設(shè)置,將圖片存放在數(shù)組中,記錄一個(gè)變量用來設(shè)置當(dāng)前圖片的標(biāo)號(即數(shù)組的下標(biāo)),點(diǎn)擊下一張按鈕時(shí),用當(dāng)前下標(biāo)模除數(shù)組長度,這樣可以防止下標(biāo)越界的異常,同理按上一張按鈕顯示當(dāng)前圖片的上一張,另外一個(gè)是設(shè)置圖片透明度,利用alpha變量設(shè)置圖片當(dāng)前透明度為0,利用按鈕設(shè)置圖片透明度,每點(diǎn)擊一下按鈕,變量alpha的值就會(huì)減少,相應(yīng)圖片透明度就會(huì)減少。同樣道理,點(diǎn)擊透明度增加時(shí),alpha變量的值就會(huì)增加,相應(yīng)圖片透明度就會(huì)增加。2014年9月4日星期四今天的做的是實(shí)現(xiàn)其播放功能,在面板容器上面添加按鈕,主要實(shí)現(xiàn)了其中三個(gè)(停止,播放,暫停)的功能,其中這些功能的實(shí)現(xiàn)都是通過MediaPlayer變量

48、調(diào)用系統(tǒng)函數(shù)來實(shí)現(xiàn)的,點(diǎn)擊播放按鈕的時(shí)候,調(diào)用start()函數(shù),系統(tǒng)就會(huì)播放歌曲,點(diǎn)擊暫停的時(shí)候(點(diǎn)擊次數(shù)為基奇數(shù)次,即為停止),首先要判斷當(dāng)前是否為播放狀態(tài),如果是,點(diǎn)擊暫停按鈕的時(shí)候會(huì)調(diào)用start()函數(shù),如不是,則會(huì)調(diào)用stop()函數(shù);在點(diǎn)擊停止按鈕的時(shí)候,音樂停止,這時(shí)候會(huì)調(diào)用系統(tǒng)的reset()函數(shù),所有的歌曲重置,以便再次點(diǎn)擊歌曲進(jìn)行播放。在這整個(gè)過程中遇到一個(gè)問題,就是在開始播放歌舞之前一定要先調(diào)用系統(tǒng)的prepare()函數(shù),已做準(zhǔn)備工作,不然系統(tǒng)是不會(huì)就調(diào)用start()函數(shù)開始播放音樂的。2014年9月5號 星期五今天完成播放器基本功能中的上一首,下一首功能,通過設(shè)置

49、當(dāng)前播放列表中播放歌曲的值currentitem,來設(shè)置所聽歌曲。參照之前做過的圖片瀏覽例子,若想要聽下一首歌曲,將currentitem的值加1,而后模除列表長度,既可以進(jìn)行播放下一曲,同理,播放上一曲時(shí),為了防止下標(biāo)越界,會(huì)首先將currentitem加列表長度,然后再減1后,對列表長度進(jìn)行模除,即可得到上一曲。同時(shí)今天完成的還有設(shè)置時(shí)間,用系統(tǒng)函數(shù)setProgress(currentVolume)來獲取歌曲當(dāng)前時(shí)間,對于音樂時(shí)間顯示,在進(jìn)行播放時(shí),每秒鐘對當(dāng)前時(shí)間重新賦值一次。同時(shí)對時(shí)間進(jìn)行格式轉(zhuǎn)換,由于系統(tǒng)獲取的當(dāng)前時(shí)間是以毫秒為單位,所以必須對當(dāng)前獲取到的時(shí)間進(jìn)行格式轉(zhuǎn)換。最后就結(jié)束了5天的Android軟件開發(fā),老師解答了大家的一些困惑,有關(guān)于就業(yè)前景的,也有關(guān)于職業(yè)發(fā)展方向的,老師以自己的經(jīng)驗(yàn)給我們一一解答,聽了老師的講解我們都有所收獲。- iii -武漢工程大學(xué)計(jì)算機(jī)科學(xué)與工程學(xué)院 認(rèn)識實(shí)習(xí)筆記(實(shí)習(xí)期間學(xué)生每天需進(jìn)行實(shí)習(xí)記錄,字?jǐn)?shù)不少于300字/天,內(nèi)容包括:時(shí)間、地點(diǎn)、主要實(shí)習(xí)內(nèi)容等。宋體,小四號字,單倍行距)

展開閱讀全文
溫馨提示:
1: 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
5. 裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

相關(guān)資源

更多
正為您匹配相似的精品文檔
關(guān)于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網(wǎng)版權(quán)所有   聯(lián)系電話:18123376007

備案號:ICP2024067431-1 川公網(wǎng)安備51140202000466號


本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務(wù)平臺,本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對上載內(nèi)容本身不做任何修改或編輯。若文檔所含內(nèi)容侵犯了您的版權(quán)或隱私,請立即通知裝配圖網(wǎng),我們立即給予刪除!