2016-05-15 59 views
0

我想做一個節拍器的應用程序,我借用了BeatKeeper app/github回購的核心代碼。當節拍器擊打時,我正試圖同步UI。 BeatKeeper回購試圖試圖解決這個問題,但解決方案不足。我也嘗試了幾種方法,但都沒有奏效。同步AudioTrack流媒體與節拍器用戶界面

我使用AudioTrack類來編寫音頻(這是一個小軍鼓聲音)。音頻從wav文件導入。給定每分鐘節拍,我計算應該寫入的小鼓樣本的數量,然後用0填充剩餘樣本(用於靜音)。因此,對於每個節拍,我都會向AudioTrack寫入圈套樣本,然後寫入無聲樣本。在編寫圈套示例之後,我發送一條消息(使用Handler)到更新當前節拍的TextView的UI線程。但是,這兩者不同步。

有誰知道如何做到這一點?我已經編譯了一些完美的節拍器應用程序(Mobile MetronomeMetronome Beats)。通過他們的代碼,我發現進口的AudioTrack,所以我認爲這是可能的AudioTrack。

我創建了一個非常裸露的骨骼應用程序/ github回購分享代碼。 Metronome類是魔法發生的地方。我還創建了一個branch,並嘗試使用AudioTrack的NotificationMarkerPosition來更新UI。使用監聽器,我使用當前的頭部位置並在每次發生事件時添加一個新標記以獲得永久性節拍事件。然而,這種嘗試在幾次跳動之後開始漂移,並且也開始下降。我甚至試圖解釋漂移並糾正它,但那也行不通。

我知道通常習慣在問題中發佈代碼,但回購看起來對我更實際。如果有必要,但我可以發佈代碼。我會很感激任何幫助/建議或替代品,使節拍器與用戶界面同步。

回答

0

這個項目怎麼樣? https://github.com/felixpalmer/android-visualizer

它使用Visualizer作爲核心。

+0

您是否有Visualizer的經驗,並相信它可以用於我的用例,或者它只是一個建議?我沒有很多音頻編程方面的經驗,但到目前爲止,我還沒有看到有人爲我的特定用例使用可視化工具。 我想試一試,但我只是想衡量我的期望。謝謝 – blinkmacalahan

+0

只是一個建議。 –