原创 Android 自定義View - 柱狀波形圖 wave view

前言 柱狀波形圖是一種常見的圖形。一個個柱子按順序排列,構成一個波形圖。 柱子的高度由輸入數據決定。如果輸入的是音頻的音量,則可得到一個聲波圖。 在一些音頻軟件中,我們也可以左右拖動聲波,來改變音頻的播放進度 本文舉例的自定View,實現

原创 Linux使用netstat查看網絡狀態

查看本機的網絡狀態。使用netstat查看網絡狀態。顯示系統端口使用情況。UDP類型的端口。TCP類型的端口。只顯示所有監聽端口。只顯示所有監聽tcp端口。 命令使用舉例 命令 說明 netstat -anp 顯示系統端口使用

原创 Android Camera2獲取預覽尺寸和fps範圍

升降攝像頭安卓手機剛上市的時候,有些很流行的app剛打開時,前置攝像頭就升起來了。好像就是出來看一眼然後又收回去。 雖然我們不調用拍照功能,只是爲了獲取相機的信息,也是可能讓攝像頭升起來的。 Camera實現 使用android.hardw

原创 WebRTC本地選擇codec(web本地模擬)

codec:編碼譯碼器,編解碼器。它是一個程序,也可以是算法,或者設備,用於編碼(encode)和解碼(decode)數據流。 WebRTC能讓兩個web或者app之間建立音視頻通信。通信過程中,數據流的格式必須被兩邊的設備支持。 WebR

原创 Android 攝像頭預覽懸浮窗,可拖動,可顯示在其他app上方

市面上常見的攝像頭懸浮窗,如微信、手機QQ的視頻通話功能,有如下特點: 整屏頁面能切換到一個小的懸浮窗 懸浮窗能運行在其他app上方 懸浮窗能跳回整屏頁面,並且懸浮窗消失 我們探討過用CameraX打開攝像頭預覽,結合可改變大小和浮動的

原创 Android 攝像頭預覽懸浮窗

用CameraX打開攝像頭預覽,顯示在界面上。結合懸浮窗的功能。實現一個可拖動懸浮窗,實時預覽攝像頭的例子。 這個例子放進了單獨的模塊裏。使用時注意gradle裏的細微差別。 操作攝像頭,打開預覽。這部分代碼與Android CameraX

原创 Android 懸浮窗 System Alert Window

懸浮窗能顯示在其他應用上方。桌面系統例如Windows,macOS,Ubuntu,打開的程序能以窗口形式顯示在屏幕上。 受限於屏幕大小,安卓系統中主要使用多任務切換的方式和分屏的方式。視頻播放,視頻對話可能會採用懸浮窗功能(例如手Q,微信的

原创 WebRTC本地插入多個轉發節點,模擬多節點轉發,造成延遲

網絡延遲是一種比較常見的情況。在本地網頁上,我們可以建立多個RTCPeerConnection,增加轉發次數,來模擬出網絡延遲的效果。 建立通話後,再往後面增加本地轉發節點。 準備 頁面準備,方便我們後面調試 <div id="contai

原创 WebRTC音頻通話升級爲視頻通話

我們有時候在音頻通話過程中,想要改成視頻通話。如果掛斷當前通話再重新發起視頻通話就會顯得比較麻煩。 因此很多app提供了將音頻通話升級成視頻通話的功能,同時也有將視頻通話降爲音頻通話的功能。 本文演示的是在本地模擬音頻通話,並且將音頻通話升

原创 WebRTC與音頻音量

WebRTC打開麥克風,獲取音頻,在網頁上顯示音量。 播放示例音頻 先從播放音頻入手。準備一個現成的音頻文件。 界面上放一個audio元素,提前準備好一個音頻文件,路徑填入src <audio id="sample-audio" src="

原创 Android CameraX ImageAnalysis 獲取視頻幀

CameraX使用ImageAnalysis分析器,可以訪問緩衝區中的圖像,獲取視頻幀數據。 準備工作 準備工作包括gradle,layout,動態申請相機權限,外部存儲權限等等,大部分設置與CameraX 打開攝像頭預覽相同。 gradl

原创 Android CameraX 打開攝像頭預覽

目標很簡單,用CameraX打開攝像頭預覽,實時顯示在界面上。看看CameraX有沒有Google說的那麼好用。先按最簡單的來,把預覽顯示出來。 引入依賴 模塊gradle的一些配置,使用的Android SDK版本爲31,啓用了datab

原创 WebRTC視頻分辨率設置

前面我們能夠打開攝像頭。getUserMedia()時會傳入參數,在參數裏我們可以指定寬高信息。通過寬高參數控制輸出的視頻分辨率。 html 在頁面上擺放一些元素,下面是主要部分 <div id="container"> <div

原创 WebRTC本地分享屏幕,錄製屏幕

WebRTC有分享屏幕的功能。使用的是getDisplayMedia方法。用戶同意分享屏幕後,可以拿到視頻流。 再結合MediaRecorder和Blob,把視頻流數據存下來,就能得到錄製屏幕的視頻。 html 照例先來擺放一些元素在界面上

原创 WebRTC網頁打開攝像頭並錄製視頻

前面我們能打開本地攝像頭,並且在網頁上看到攝像頭的預覽圖像。 本文我們使用MediaRecorder來錄製視頻。在網頁上播放錄製好的視頻,並能提供下載功能。 html 首先創建一個html界面,放上一些元素 <video id="v