• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      Android平臺下具有書簽功能的時間戳錄音系統(tǒng)

      2018-08-22 01:23:32蔣瑩
      現(xiàn)代計算機(jī) 2018年22期
      關(guān)鍵詞:音頻文件書簽列表

      蔣瑩

      (中山大學(xué)新華學(xué)院,東莞 523133)

      0 引言

      移動互聯(lián)網(wǎng)快速發(fā)展的今天,移動設(shè)備已成為人們生活中必不可少的生活用品之一。移動互聯(lián)徹底改變了我們的生活方式,越來越多的溝通和交流都可以通過移動平臺及時得到實現(xiàn),很多以前需要電腦或?qū)iT設(shè)備才能實現(xiàn)的操作都可以通過移動平臺方便地進(jìn)行,手機(jī)語音識別技術(shù)也受到越來越多的關(guān)注[1]。錄音,作為移動系統(tǒng)中一項重要的功能,Android平臺也好iOS平臺也好,都有自帶的錄音程序,這些錄音程序都能滿足最基本的錄音操作。但是當(dāng)進(jìn)行較長時間的音頻錄制且音頻是分段錄制的時候,這些系統(tǒng)自帶的錄音軟件,往往無法滿足要求。例如:如果想在錄音過程中任意時刻添加書簽或筆記,這樣在進(jìn)行錄音回放和整理的時候就會明確知道從哪里開始回放,不至于頻繁倒退而浪費(fèi)時間。這樣的功能,目前系統(tǒng)自帶的錄音軟件是無法滿足的。

      本文基于以上分析,考慮Android平臺的開放性和易用性[2],在原有錄音技術(shù)的基礎(chǔ)上,增加書簽功能,系統(tǒng)在每次暫停錄制時,可以增加錄音標(biāo)簽信息的界面寫下文字說明,方便用戶了解當(dāng)前子音頻的主要內(nèi)容。在全部子音頻信息錄制完畢后,可以將所有子音頻合并成一個完整的音頻。

      1 系統(tǒng)分析與設(shè)計

      1.1 需求分析

      系統(tǒng)共包括5大模塊:開始錄音、暫停錄音、繼續(xù)錄音、全部播放以及停止錄音模塊,這5大模塊簡單說明如下:

      (1)開始錄音:在進(jìn)入系統(tǒng)后點擊“開始錄音”按鈕,開始第一段音頻的錄制;(2)暫停錄音:在系統(tǒng)錄音過程中,隨時可按下“暫停錄音”按鈕。點擊“暫停錄音”按鈕,彈出需要添加書簽的界面,添加完書簽信息后點擊確定,可回到錄音界面,且剛剛錄制的音頻已添加到錄音界面的錄音列表中;(3)繼續(xù)錄音:在暫停錄音添加完書簽信息后,點擊“繼續(xù)錄音”可以接著錄制音頻;(4)全部播放:在錄音界面下,點擊“全部播放”按鈕,可以播放從最開始錄制的每一段音頻信息;(5)停止錄音:該按鈕按下之后,會將每一段錄制的音頻文件整合成一整段完整的音頻保存起來。

      在每段音頻列表中,都有播放和刪除按鈕,點擊播放則可以播放當(dāng)段音頻,點擊刪除,則可以將其刪除。以上模塊的功能流程如圖1所示。

      圖1 系統(tǒng)功能流程圖

      1.2 界面設(shè)計

      根據(jù)需求分析,得出系統(tǒng)界面原型設(shè)計圖。系統(tǒng)界面原型設(shè)計圖如圖2所示。進(jìn)入系統(tǒng)后,最上面是系統(tǒng)狀態(tài)提示區(qū),主要用于指示當(dāng)前系統(tǒng)所處狀態(tài);接著是主要按鈕區(qū),包含“開始錄音”、“暫停播放”、“繼續(xù)播放”、“全部播放”以及“停止錄音”按鈕。將這5個主要按鈕放置在一個LinearLayout布局下。初始狀態(tài)下只有“開始錄音”按鈕可以用,隨著系統(tǒng)狀態(tài)不同,各個按鈕的可用狀態(tài)也不同。按鈕的可用狀態(tài)為黑色,不可用狀態(tài)為灰色;最下面是子音頻區(qū),每暫停錄音一次,生成一個子音頻文件。子音頻文件暫時保存在ListView中,每個子音頻都能進(jìn)行獨立播放和刪除操作。點擊停止錄音則會將ListView中的所有子音頻文件整合為一個音頻文件。

      圖2 系統(tǒng)界面原型

      1.3 關(guān)鍵抽象

      系統(tǒng)初始化界面后,對界面中各個按鈕進(jìn)行監(jiān)聽。采用MediaRecorder錄音類進(jìn)行音頻錄制,采用MediaPlayer播放類播放錄音。將每次暫停錄音得到的子錄音音頻文件暫時保存在SD卡根目錄下。系統(tǒng)主要設(shè)置了4個類,分別為MainActivity類、MyDetailsDialog類、MyAdapter類和MergeAMR類。MainActivity類主要是對系統(tǒng)主界面的控制,程序從這個類開始;MyAdapter類是用于處理ListView的適配器;MyDetailsDialog類則用于暫停錄音時的添加標(biāo)簽功能;MergeAMR類主要處理ListView中子音頻文件,將其合成為一個音頻文件。系統(tǒng)的關(guān)鍵抽象如圖3所示。

      圖3 關(guān)鍵抽象

      2 系統(tǒng)實現(xiàn)

      2.1 開發(fā)調(diào)試環(huán)境

      本錄音系統(tǒng)采用release版本的Android開發(fā)環(huán)境“adt-bundle-windows-x86_64-20140702”,以及 Redmi4真機(jī)進(jìn)行調(diào)試,MIUI版本為9.2。

      2.2 系統(tǒng)調(diào)試界面

      系統(tǒng)調(diào)試界面如下圖所示,圖4是初始時進(jìn)入系統(tǒng)的界面,此時只有“開始錄音”按鈕可以用。當(dāng)點擊“開始錄音”按鈕后,系統(tǒng)進(jìn)入錄音狀態(tài),錄音狀態(tài)界面如圖5所示。點擊“暫停錄音”按鈕則彈出輸入標(biāo)簽信息的界面,添加標(biāo)簽界面如圖6所示。圖7展示已經(jīng)添加了兩個子音頻的錄音列表。

      2.3 關(guān)鍵代碼實現(xiàn)

      系統(tǒng)實現(xiàn)過程中,主要有2個關(guān)鍵難點,分別是ListView列表的監(jiān)控和子音頻文件的合成。現(xiàn)分別就這2個方面的具體實現(xiàn)進(jìn)行闡述。

      (1)ListView列表的按鈕監(jiān)控

      在類MyAdapter中定一個CallBack接口,該接口用于回調(diào)按鈕點擊事件到MainActivity類,MainActivity類中實現(xiàn)CallBack接口的click()方法,當(dāng)ListView中有按鈕按下時,系統(tǒng)調(diào)用click()方法,實現(xiàn)子音頻播放和刪除。

      定義的接口CallBack的代碼實現(xiàn)如下,接口中只有一個click方法:

      設(shè)置監(jiān)聽代碼如下,其中holder為每個ListView子Item對應(yīng)的子類,該類在MyAdapter中定義。

      當(dāng)有ListView中有按鈕按下時,在onclick()方法里調(diào)用click()方法。

      MainActivity類中click()方法代碼如下。

      (2)子音頻的合成

      由于音頻在錄制的時候采用的是AMR-NB格式,而AMR文件前6個字節(jié)為文件頭,要進(jìn)行子音頻文件的拼接,只需要在拼接過程中去掉除第一段音頻以外所有音頻的前6個字節(jié)即可。新建文件fileMerge.amr作為拼接后的文件,以文件流的形式依次讀入已有amr文件,代碼片斷如下:

      其中out是文件輸出流,b是字節(jié)數(shù)組,inpu_i是第i個已存在的音頻文件。從圖8中可以看出,保存的文件fileMerge.amr大小是其他子音頻文件之和。

      圖4 初始界面

      圖5 錄音狀態(tài)

      圖6 添加標(biāo)簽

      圖7 已添加兩個子音頻列表

      圖8 系統(tǒng)內(nèi)存中 保存的音頻文件

      3 系統(tǒng)運(yùn)行與測試

      整個系統(tǒng)按照如下的順序,在完成模塊代碼進(jìn)行對應(yīng)性能測試:首先在完成錄音與播放代碼實現(xiàn)后,反復(fù)對錄音以及播放功能測試,以完成正常錄音功能;其次,實現(xiàn)每暫停錄音一次則保存錄音的子音頻文件在ListView中的代碼,對列表中的子音頻文件進(jìn)行播放和刪除,確保每段音頻能正常播放或刪除;第三為每次子音頻設(shè)置標(biāo)簽代碼實現(xiàn)后,測試添加的標(biāo)簽?zāi)苷o@示;最后完成所有子音頻的合并的代碼后,反復(fù)測試停止錄音功能并播放合成后的音頻文件,以確保錄音能正常合成并且合并后的音頻能夠正常播放。經(jīng)過調(diào)試運(yùn)行,系統(tǒng)完成了“開始錄音”、“暫停錄音”、“添加標(biāo)簽”、“繼續(xù)錄音”、“播放全部錄音”和“停止錄音”等基本功能。并且Android工程導(dǎo)出的apk安裝包能在Android 6.0.1以下版本的真機(jī)中正常運(yùn)行。

      4 結(jié)語

      Android平臺下的時間戳錄音系統(tǒng)的設(shè)計與實現(xiàn),通過增加書簽功能使在進(jìn)行長時間錄音時,對錄音進(jìn)行分段,以便更好地對音頻進(jìn)行更加精準(zhǔn)的操作,彌補(bǔ)了當(dāng)前移動系統(tǒng)自帶錄音軟件的不足。系統(tǒng)還存在一些可以改進(jìn)的地方,首先本系統(tǒng)是僅僅實現(xiàn)了基本功能,并且系統(tǒng)實現(xiàn)的界面不夠美觀;其次在于音頻文件存放在SD卡根目錄下占用系統(tǒng)內(nèi)存,這些都有待進(jìn)一步完善。最后,為系統(tǒng)設(shè)計不同主題、云存儲讀寫錄音文件[3]等功能,可以提高系統(tǒng)的實際應(yīng)用價值。

      猜你喜歡
      音頻文件書簽列表
      巧用列表來推理
      透明書簽
      學(xué)習(xí)運(yùn)用列表法
      擴(kuò)列吧
      十一月書簽
      文苑·感悟(2019年11期)2019-12-05 02:50:31
      十一月書簽
      文苑(2019年21期)2019-11-04 09:16:40
      貳月書簽
      文苑·感悟(2019年2期)2019-02-18 02:10:40
      基于Android手機(jī)的音頻文件取證技術(shù)研究
      提取APP中的音頻文件
      電腦愛好者(2015年5期)2015-09-10 07:22:44
      數(shù)字水印在音頻文件篡改檢測中的應(yīng)用
      临漳县| 永春县| 林周县| 于田县| 丹寨县| 湘阴县| 大港区| 大宁县| 五峰| 通榆县| 喜德县| 海兴县| 集安市| 雷州市| 怀来县| 忻城县| 保靖县| 福建省| 青田县| 临西县| 正阳县| 平果县| 凌云县| 马尔康县| 三河市| 巴林左旗| 泾川县| 全南县| 东明县| 嘉兴市| 金门县| 白水县| 马边| 民县| 尼玛县| 军事| 即墨市| 扶绥县| 景泰县| 绥中县| 长乐市|