原创 【Android】【項目發佈】兩分鐘發佈GitHub項目到Maven倉庫

相關術語說明 Maven:全名Apache Maven,是Apache開發的一個軟件項目管理和項目自動構建工具 Maven倉庫:存放Maven依賴的類庫的地方,可以是遠程服務器,也可以是本地磁盤 JCenter:一個由 b

原创 【Android】【機型適配】解決Android10有文件權限但無法訪問文件的問題

Android10對權限的管理更加嚴格了,主要有以下兩點 權限按單個分配,不再按組分配,以前申請了讀存儲卡權限,即可獲得同組的寫權限,現在不行了 存儲卡讀寫權限需要在Application的Manifest清單中聲明

原创 【Javascript】【視頻錄製】通過video標籤和canvas實現視頻截圖錄制和下載

錄像原理 創建一個畫布,video標籤本身不具備記錄畫面功能,所以我們需要通過Canvas來達成這個功能 創建一個錄製器,與CanvasStream綁定,這樣畫布繪製什麼,錄製器都能觸發回調 創建一個定時器,不停通過Can

原创 【文件服務】Everything快速搭建局域網文件共享搜索服務

什麼是Everything Everything是一款在Windows上的,提供文件索引查找服務的軟件 軟件體積不到2M,可以獨立運行,而且界面簡潔,搜索速度極快 Everything在十秒內即可搜索到Windows上的全部文件,

原创 【NDK】【005】JNA調用dll動態庫

什麼是JNA JNA全稱Java Native Access,是JNI之外另一個Java訪問C++的混編框架 JNA非Java自帶功能,需要導入第三方類庫 JNA只支持Java調用C++,不支持C++調用Java JNA

原创 【NDK】【003】JNI調用dll動態庫

JNI調用C++規則 Java方法前要用native關鍵字修飾,並且只有方法聲明,沒有實現,因爲實現代碼在C++裏面 C++方法前要用JNIEXPORT和JNICALL宏修飾 C++方法中的數據類型,要使用與Java數據類

原创 【零基礎學QT】【035】Qt中文讀寫和打印亂碼處理

爲什麼Qt和很多軟件都會有亂碼問題 首先,字符串不管是存儲到文件還是內存裏面,它都只是字節而已,字符字形只是經過轉換顯示給人看的。同樣的字節,在不同的編碼下,就代表不同的字符。因此,程序寫入文件和讀取文件時,使用的編碼必須一致

原创 【零基礎學QT】【030】原生C++代碼模擬Qt類型識別系統

Qt內置類型識別系統的使用方法 QObject *obj = new QPushButton("OK"); //判斷obj是否是QPushButton類 bool isPushButton = obj->me

原创 【Android音視頻開發】【007】SurfaceView實現H264播放器

在前面,我們已經通過MediaCodec實現了一個AvcDecoder,可以播放H264碼流數據 但是AvcDecoder需要手動和Surface綁定,仍然不太方便 這篇文章我們進一步封裝,將MediaCodec和SurfaceV

原创 【零基礎學QT】【045】Qml基本用法

本篇博客通過一個詳細的UI例子來逐個點介紹Qt Quick的基本用法,儘量通過簡單例子來覆蓋全部主要知識點,閱讀時請對照代碼來逐個理解各個知識點 Qt Quick基本用法 Demo使用技巧:由於以下代碼集中了大量知識點,同時顯

原创 【Android音視頻開發】【005】H264幀數據格式

H264畫面組 H264並不會記錄每幀圖像的完整數據,而是隻記錄一張完整的數據,然後其它幀只記錄相對於此幀的像素變化。 由於短時間內,圖像絕大部分是不會發生變化的,因此這種記錄方式,可以大幅節省存儲空間 參照幀和若干組相對變化幀,

原创 【零基礎學QT】【044】Qt Quick和Qml

什麼是Qt Quick和Qml Qt Quick是從Qt4開始引入的一套新的UI開發框架,並在Qt5時得到較大完善,成爲首選的UI開發方式 Qt Quick使用類似於CSS的方式進行界面開發 Qt Quick最早設計出來是

原创 【C++】【編譯器】C語言編譯器的那些事

GNU和Linux Linux相信大家都不陌生,它是一個開源操作系統,但是在早期,它指的僅僅是操作系統內核,由於操作系統內核叫做Linux,慢慢人們也習慣把這個操作系統叫做Linux系統了 GNU是一個自由軟件計劃,在GNU浪潮下

原创 【零基礎學QT】【037】C++中char,wchar,string,wstring

char和wchar_t char是C++基本類型,佔一個字節(8位),可用來存儲單個字符的Unicode碼,由於正好8位,也可用來存儲字節 wchar_t是C++擴展類型,佔兩個字節,可以用來存儲Unicode編碼(UTF

原创 【零基礎學QT】【047】Qml自定義控件

Qml自定義控件其實比較容易,簡單來說,只需將自定義控件的界面佈局寫在qml文件裏面,在其它地方,直接用這個qml的文件名作爲類名,就可以使用這個自定義控件了 這裏我們主要講解一些自定義控件細節和可維護性方面的東西 下面我們以一個