天天看點

Android開發音視訊

  移動網際網路時代來臨,一個嶄新的時代開始了。所謂移動網際網路就是将移動通信和網際網路整合在一起,使移動裝置(包括手機和上網本)可以随時随地地通路網際網路資源和應用。網際網路時代創造了一個經濟神話,也造就了很多時代英雄,他們一個個令人仰慕。試想為數億的手機使用者和數億的網民建立一個共同的平台,使其應用到企業、商業和和農村之間,又會是怎樣一個驚天動地的偉業呢?新時代開始了,你願意輸在起跑線上嗎? 與之Android 相關的應用開發随之而來。先大家闡述一下視訊錄制詳細細節。

  如何在自己應用程式中播放一個可用的media音頻:

1、将檔案放到你的工程的res/raw檔案夾中,在這個檔案夾中,Eclipse插件将會找到它,同時,會将這個資源與你的R

類相關聯起來;

2、建立一個MediaPlayer,并使用MediaPlayer.create與資源相關聯起來,之後在執行個體中使用start()方法。

例如:MediaPlayer mp=MediaPlayer.create(context,R.raw.sound_file_1);

mp.start();

如果要想停止播放,使用stop()方法。如果你想稍後重新播放這段media,你必須在再次使用start()方法之前使用

reset()方法和prepare()方法來操作MediaPlayer對象。(create()第一次調用prepare())

如果想暫停播放,可以使用pause()方法。在你暫停的地方恢複播放功能使用start()方法即可實作。

播放一個檔案

下面介紹如何播放一個檔案:

1、用new建立一個MediaPlayer執行個體;

2、調用setDataSource()方法,這個方法有一個String類型的參數,這個String類型的參數包含了你所要播放的

檔案的路徑-本地檔案系統或者是URL;

3、之後,先調用prepare()方法,然後才是start()方法。

例如:

MediaPlayer mp=new MediaPlayer();

mp.setDataSource(PATH_TO_FILE);

mp.prepare();

需要注意的一點是:如果你傳遞的是一個URL方式的檔案,那麼這個檔案必須是可以下載下傳的,并且是不間斷的,簡單地

說就是在播放的同時進行着下載下傳。

如何錄制media音頻資源:

1、使用new建立一個執行個體android.media.MediaRecorder;

2、建立一個android.content.ContentValues執行個體并設定一些标準的屬性,像TITLE,TIMESTAMP,最重要的是MIME_TYPE;

3、建立一個要放置的檔案的路徑,這可以通過android.content.ContentResolver在内容資料庫中來建立一個入

口,并且自動地标志一個取得這個檔案的路徑。

4、使用MediaRecorder.setAudioSource()方法來設定音頻資源;這将會很可能使用到MediaRecorder.AudioSource.MIC;

5、使用MediaRecorder.setOutputFormat()方法設定輸出檔案格式;

6、用MediaRecorder.setAudioEncoder()方法來設定音頻編碼;

7、最後,prepare()和start()所錄制的音頻,stop()和release()在要結束的時候調用。

 這是一個執行個體:

recorder=new MediaRecorder();

ContentValues values=new ContentValues(3);

values.put(MediaStore.MediaColumns.TITLE,SOME_NAME_HERE);

values.put(MediaStore.MediaColumns.TIMESTAMP,System.currentTimeMillis());

values.put(MediaStore.MediaColumns.MIME_TYPE,recorder.getMimeContentType();

ContentResolver contentResolver=new ContentResolver();

Uri base=MediaStore.Audio.INTERNAL_CONTENT_URI;

Uri newUri=contentResolver.insert(base,values);  //在所給定的URL中向一個表格插入一列資料

//函數原型:final Uri insert(Url,ContentValues values);

if(newUri==null){

    //這裡需要異常處理,我們在這裡不能建立一個新的内容入口

}

String path=contentResolver.getDataFilePath(newUri);

//可以使用setPreviewDisplay()來陳列一個preview 來使View适合

recorder.setAudioSource(MediaRecorder.AudioSource.MIC);

recorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);

recorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);

recorder.setOutputFile(path);

recorder.prepare();

recorder.start();

停止錄制:

recorder.stop();

recorder.release();

在錄制音頻資源的過程中,使用到了ContentValues這個類,下面來解說這個類。

ContentValues這個類是用來存儲一系列的值的,這些值要求ContentResolver能夠process的。

ContentValues(int size)構造函數使用所給定的初始值建立一個空系列的值。

ContentValues(ContentValues from)這個構造函數建立一個從給定的ContentValues中來進行複制所産生的值。

這個類有如下的常用的方法:

void clear()  删除所有的值

boolean containsKey(String key) 如果這個對象有已命名的值就傳回真

int describeContents() 描述值類型

Object get(String key) 獲得值

void put(String key,Integer value)增加一個值到對應的set中

   視訊錄制是Android 視訊開發其中之一,視訊監控、視訊路況等開發都是在Android平台上去實作,今後跨平台的Android市場更是多姿多彩。Android手機當遙控器用,手機連接配接電視機頂盒。這些絕不是小說裡的科幻文字,而是事實。 從2011年開始,“三網融合”正式被國務院納入十二五計劃并開始實施。國務院十分明确的把三網融合作為全面提高資訊化水準的重要手段進行定位,彰顯出三網融合在國家戰略層面發展不可替代的重要性,也為三網融合在十二五期間的發展提出了明确的方向和目标。在同一的治理平台下,實作音頻、視訊、資料信号的傳輸和管理,提供各種寬帶應用和傳統電信業務,是一個真正實作寬帶窄帶一體化、有線無線一體化、有源無源一體化、傳輸接入一體化的綜合業務網絡。讓一根光纖解決看電視、打電話、上網的夢想變為現實。

   在“三網融合”的背景下,音視訊即時通訊應用廣泛,遍及智能家居、老人護理、個人健康等多個領域。當移動通訊終端、計算機和電視機一體化趨勢日益明顯,網際網路對社會生活各領域影響越來越大時,“三網融合”下的音視訊即時通訊應用将逐漸占據非常重要的位置。

本文轉自 fanxiaojun 51CTO部落格,原文連結:http://blog.51cto.com/2343338/522622,如需轉載請自行聯系原作者

繼續閱讀