原创 Windows:傳統聲音API waveOut

在網上找到了一個 Windows傳統聲音API接口waveOut的使用demo,先保存下來以後用到的時候再拿來看。 原文:https://blog.csdn.net/gb1230/article/details/41350189 值得注意

原创 Android : 音頻焦點

當打開一個音頻應用的時候,解決與另一個正在運行的音頻應用的焦點爭奪問題(例如:微信電話、網易雲音樂) audioManager = (AudioManager)getContext().getSystemService(Context.

原创 聲網的一道牛逼題

#include <cstdio> class A { public: void f1() { printf("A::f1\n"); } virtual void f2() {

原创 非週期連續時間信號的傅里葉變換

https://www.cnblogs.com/seniusen/p/9900066.html

原创 二階常係數線性微分方程求解

原文:https://www.q-math.com/?p=282

原创 Android:JNI 在 loadLibrary() 時如何從外部存儲中導入 .so 庫

       在工作中具有這樣一個場景,我們編譯好的 .so 文件,被包裝成 .aar 供Android頂層接口調用,但是如果 .so 中的C++代碼出現了什麼問題,修改並重新編譯成 .so 之後再想從產品線上替換掉已經打好的包並進行產品

原创 桂林:山水靈動之城,邪惡傳銷之都。

       誠然,對於一個接受過高等教育和精英教育的人,自然是會對傳銷這種行爲嗤之以鼻,寫這篇文章也是因爲自己的某位親友深陷其中。並且也在試圖說服我,這讓我覺得格外噁心。        我不知道爲什麼會有人以賺錢爲自己的信仰,相信一次投

原创 C/C++:用 std::ifstream 重複讀取同一個文件

       在音頻的採集編碼發送端,用 std::ifstream 將採集到的原始數據、前處理後的pcm數據或編碼後的RTP數據包替換掉,就可以指定音頻的輸入源,在特定的輸入源之下衡量音頻傳輸/處理的效果。 假如要替換pcm原始音頻數據

原创 C/C++:std::function 和 std::bind 的使用

頭文件:<functional> std::function<...>        std::function的實例可以對任何能夠調用的目標實體進行封裝調用,這些目標實體包括普通函數、lambda表達式、函數指針、仿函數、類的普通成員函

原创 WebRTC:音頻QoS中的前向糾錯 (FEC) 技術解析

轉載請標明出處:https://blog.csdn.net/qq_29621351 1. 前言        WebRTC語音傳輸中保證傳輸質量的主要措施分爲丟包重傳 (NACK) 和前向糾錯 (FEC),其中NACK主要是接收端在檢測到

原创 WebRTC:源碼時間戳縮放類TimestampScaler解析

WebRTC中的時間戳縮放類用於將外部時間戳轉換爲內部時間戳,或者將內部時間戳轉換爲外部時間戳。 內部 / 外部時間戳概念 外部時間戳即爲RTP攜帶的時間戳字段,它表示RTP報文發送的時鐘頻率,在語音中通常等於pcm語音的採樣率(RTP攜

原创 WebRTC :NetEQ源碼分析

      隨着WebRTC版本的不斷更新,內部代碼結構也有了很大的變化,但是對於底層的音視頻引擎來講,卻沒有什麼太大的變化,因爲引擎早很早之前就已經達到了一個非常成熟穩定的狀態(早期的QQ音頻就已經使用了GIPS的NetEQ)。讀研期間

原创 WebRTC:丟包重傳的代碼實現—NackTracker類

WebRTC通過NackTracker類實現丟包重傳,下面是該類的源碼。源碼中包含公共變量和方法,也包含私有變量和方法,公共變量和方法可以被看作是對外部提供的接口。 class NackTracker { public: //

原创 C/C++:從內存佈局理解C++虛繼承的實現原理

準備 測試環境:Visual Studio 2017 Visual Studio提供給用戶顯示C++對象在內存中的佈局的選項: /d1reportSingleClassLayoutXXX     // XXX替換爲類的名字 /d1rep

原创 C/C++:標準庫容器vector的用法及內存管理

      C++中的標準庫容器vector是一個類模板,可以根據想裝入元素的具體類型來實例化一個vector容器,vector相當於一個動態數組,當你無法知道自己需要的數組規模具體要多大時,可以用它來解決問題,而且使用很方便。 1.文件