Android應用音視頻開發軟件

移動互聯網隨着智能手機的普及應用越來越廣泛,所謂移動互聯網是將移動通信和互聯網整合在一起,使移動設備(包括手機和上網本、Pad平臺)可以隨時隨地地訪問互聯網資源和應用獲取相應的信息和處理。

從2011年開始,“三網融合”正式被國務院納入十二五計劃並開始實施。國務院十分明確的把三網融合作爲全面提高信息化水平的重要手段進行定位,彰顯出三網融合在國家戰略層面發展不可替代的重要性,也爲三網融合在十二五期間的發展提出了明確的方向和目標。在同一的治理平臺下,實現音頻、視頻、數據信號的傳輸和管理,提供各種寬帶應用和傳統電信業務,是一個真正實現寬帶窄帶一體化、有線無線一體化、有源無源一體化、傳輸接入一體化的綜合業務網絡。讓一根光纖解決看電視、打電話、上網的夢想變爲現實。現在一個網線通過WIFI能把所有的通信設備連接起來,移動互聯網又具有隨時隨地的便利性,未來移動互聯網將和傳統的互聯網平起平坐,甚至有超越的趨勢!

根據這個大趨勢,小編教大家如何通過Android系統開發音視頻

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

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

類相關聯起來;

2、創建一個MediaPlayer,並使用MediaPlayer.create與資源相關聯起來,之後在實例中使用start()方法。

例如:MediaPlayermp=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();

mp.start();

需要注意的一點是:如果你傳遞的是一個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 Uriinsert(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中

   小編在開發過程中大部分開發內容是借鑑了AnyChat這個免費的開發文檔進行二次開發的。AnyChat在很多下載網址都提供下載。裏面用於個人研究和演示是免費的!最主要的是AnyChat SDK是一套多媒體即時通訊平臺庫,絕大多數需要用到音視頻交互的系統都可以採用AnyChat SDK來開發。而且AnyChat SDK的跨平臺特性是其與衆不同的亮點之一,目前支持Windows、Unix、Linux(x86、ARM)、Android、ios平臺等,基本一般用戶使用的開發平臺都可以使用的,最難能可貴的是支持VC++、Delphi、C#、VB.Net、Qt等開發語言,不得不說是一個開發者借鑑的神奇平臺!

可以到網址下載不同的平臺版本:www.anychat.cn

而且還有技術論壇,有任何疑問都可諮詢,有專業人會回答的:http://bbs.anychat.cn/forum.php

   視頻錄製是Android 視頻開發其中之一,音視頻的即時通訊、語音佟通信、視頻監控、視頻路況等開發都是在Android平臺上去實現,今後跨平臺的Android市場更是豐富多彩-。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章