Time of Update: 2018-12-03
1.本地檔案通過查詢資料庫audio或video視圖的duration欄位。這種方法針對手機上儲存的本地檔案有效,但對於網路上的線上檔案則不起作用。2.線上檔案對於線上檔案,則可以在MediaPlayer的prepareAsync後,當接收到onPrepared的時候通過MediaPlayer的getDuration方法取得總時間長度。對於本地的APE音樂檔案,也可以通過上述方法在prepare完成後取得總時間長度;雖然APE檔案會被掃描到資料庫中,但有時候掃描的時間長度不正確,就可以通過這種方
Time of Update: 2018-12-03
先看下mediaplayer.h對error類型的定義:// Generic error codes for the media player framework. Errors are fatal, the// playback must abort.//// Errors are communicated back to the client using the// MediaPlayerListener::notify method defined below.// In this
Time of Update: 2018-12-03
Issue 12926:Music Player pauses
Time of Update: 2018-12-03
恢復出廠預設值後預設鈴聲與燒機後的預設鈴聲不一致,包括來電鈴聲鈴聲,通知鈴聲,鬧鐘鈴聲。如果不單獨設定預設初始鈴聲,則預設鈴聲是取db中的第一個鈴聲。/data/data/com.android.providers.media/databases/internal.db中audio
Time of Update: 2018-12-03
在帝都八年多,住過城裡小區,住過城郊村莊。現流水賬記錄一下。04年底去北京實習,住的公司幫租的小區房,在中關村東邊的知春裡東裡,房租一個月2000,四個人,每人500元。那時實習費一個月也只有1000,交了房租只能勉強夠吃飯。05年畢業後和同學找房,被中介騙了400元。當時人多有六個人,需要找兩居的,但中介給看的房子都是一居隔的,看了一兩家後就不理我們了,錢打了水漂。最後又找了另外一個中介才租到房,住在國家氣象局大門口外的小區,兩室兩廳,當時租金2400元。06年換工作到酒仙橋那邊後,去了那邊的
Time of Update: 2018-12-03
在進行UDP編程的時候,我們最容易想到的問題就是,一次發送多少bytes好?當然,這個沒有唯一答案,相對於不同的系統,不同的要求,其得到的答案是不一樣的,我這裡僅對像ICQ一類的發送聊天訊息的情況作分析,對於其他情況,你或許也能得到一點協助:首先,我們知道,TCP/IP通常被認為是一個四層協議系統,包括鏈路層,網路層,運輸層,應用程式層.UDP屬於運輸層,下面我們由下至上一步一步來看:乙太網路(Ethernet)資料幀的長度必須在46-1500位元組之間,這是由乙太網路的物理特性決定的.這個15
Time of Update: 2018-12-03
首先需要注意的是,AudioPlayer處理的是已經解碼後的資料1.建立AudioPlayer對象(1)在 AwesomePlayer::play_l()函數中建立了AudioPlayer對象,並且在AwesomePlayer.cpp檔案中,只在此函數中建立過AudioPlayer對象 if (mAudioSource != NULL) { if (mAudioPlayer == NULL) { if (mAudioSink != NULL) { //
Time of Update: 2018-12-03
1. ALooper::start() while runOnCallingThread is true call ALooper::loop()2. ALooper::loop() call gLooperRoster.deliverMessage(event.mMessage); gLooperRoster is defined in ALooper.cpp as a global variable of ALooperRoster. 3. ALooperRoster:
Time of Update: 2018-12-03
播放聲音可以用MediaPlayer和AudioTrack,兩者都提供了java
Time of Update: 2018-12-03
標準RTSP訊息的錯誤碼–在應答訊息的第一行表示”100” ; Continue (all 100 range)“110”; Connect Timeout “200” ; OK ”201” ; Created ”250” ; Low on Storage Space ”300” ; Multiple Choices ”301” ; Moved Permanently ”302” ; Moved Temporarily ”303” ; See Other ”304” ; Not
Time of Update: 2018-12-03
用法:GetTextExtent函數功能:使用該函數獲得所選字型中指定字串的高度和寬度函數原型:CSize GetTextExtent(LPCTSTR lpszString, int nCount);參數: lpszString是字串的指標 nCount是所包括的字元數 傳回值 CSize是包含(cx,cy)2個成員的結構,cx是字串的寬度,cy是字串的高度。例子:CString cstr = "Hello";CSize siz =
Time of Update: 2018-12-03
核心提示:CDMA、GPRS、EDGE、WIFI網速對比,大家知道,上網包括從網路擷取資料和向網路傳輸據這兩個方向的速度,在很多時候這兩個方向的頻寬或者速度是不一樣。接收速度和上傳速度 大家知道,上網包括從網路擷取資料和向網路傳輸據這兩個方向的速度,在很多時候這兩個方向的頻寬或者速度是不一樣。這在專業術語中稱之為下行頻寬 (速度)和上行頻寬(速度),我們可以理解為接收速度和上傳速度。在很多環境,上行速度和下行速度是不一樣的,一般來說在這些不對稱的場合,下行速度多是 大於上行速度。 記住哦,
Time of Update: 2018-12-03
如題,通過下面的一個例子,頻繁點擊播放下一首歌,驗證MediaPlayer的reset函數是否會發生阻塞。驗證資料如下:在從20:26:04.673到20:26:36.168的32秒時間內,點擊170次Next播放下一首歌曲,都成功,沒有發生阻塞主線程導致ANR的問題。由於本例播放的都是本地歌曲 ,所以沒有發生阻塞的情況。如果是播放線上歌曲,需要與網路交換,頻繁執行播放動作,可能會發生ANR;播放網路歌曲需要使用非同步prepareAsync函數,而不能使用同步的prepare,以免發生阻塞。(
Time of Update: 2018-12-03
CMDIFrameWnd *pFrame= (CMDIFrameWnd *)AfxGetApp()->m_pMainWnd;CMDIChildWnd *pChild= (CMDIChildWnd *)pFrame->GetActiveFrame();CAnalyseDispView *pView = (CAnalyseDispView *)pChild->GetActiveView();if ((this) == pView){ ...}
Time of Update: 2018-12-03
藍芽耳機功能,也就是bluetooth headset /headfree profile,實現起來比想象的複雜。早期的藍芽規範只定義了headset的profile,
Time of Update: 2018-12-03
1.NuPlayerDriver::reset() mPlayer->resetAsync();// 執行非同步reset while (mResetInProgress) { // 等待reset完成,如果5秒未完成,則會出現ANR mCondition.wait(mLock); }2.NuPlayer::resetAsync()發送kWhatReset訊息3.kWhatReset訊息的處理NuPlayer::onMessageReceivedcase
Time of Update: 2018-12-03
Proxy 伺服器常用的連接埠有:HTTP代理:80/8080/3128/8081/9080SOCKS代理:1080FTP代理:21Telnet代理:23HTTPS代理:443Android Market: 5228FTP檔案傳送協議(File Transfer Protocol,簡稱FTP),連接埠號碼:21(控制連接埠),20(資料連接埠)DNS(網域名稱解析協議) 連接埠號碼:53SMTP(Simple Mail Transfer Protocal)稱為簡易郵件傳輸通訊協定
Time of Update: 2018-12-03
1.設定RTSP連接埠號碼設定RTSP連接埠號碼的處理位於ARTSPConnection.cpp檔案中,首先從url中擷取連接埠號碼,如果讀取不到,則設定為預設連接埠554。代碼處理如下:ARTSPConnection::ParseURL( const char *colonPos = strchr(host->c_str(), ':'); if (colonPos != NULL) { unsigned long x; if
Time of Update: 2018-12-03
首先看下ISurfaceComposer介面ISurfaceComposer定義了基礎介面,供用戶端和Server端互動使用。ISurfaceComposer介面的衍生類別圖示:------------------------------------------------------------------介面ISurfaceComposerClient->BnSurfaceComposerClient->實作類別Client,位於SurfaceFlinger.h檔案中------
Time of Update: 2018-12-03
wsprintf不支援%f,即不支援浮點數,雙精確度數格式化。又sprintf在mfc中編譯會提示warning,說此函數太老了,不推薦使用。所以可以把float, double型資料先格式化為CString類型,再格式化為char[]。例如double val_max = 5.0;char cArr[20] = "";CString str;str.Format("%f", val_max);wsprintf(cArr, "%s", str.GetBuffer(str.GetLength())