如何編寫 Windows Mobile Smartphone 錄音程式

來源:互聯網
上載者:User

錄音是很實用的功能,我們可以用它錄製語音筆記和電話通話,還可以用它來開發簡單的語音交談軟體。當然,錄音的用途不僅僅只有這些。

今天要介紹大家如何開發一個簡單的 Windows Mobile Smartphone 錄音程式,這個小程式包含錄音和播放錄音兩個功能,還可以通過數字鍵台的5鍵來控制錄音和停止錄音。

實現原理:OpenNETCF 已經封裝好了一個錄音機類和一個播放器類,我們把這兩個類配合起來使用,就可以製作出一個簡單的錄音程式。這兩個類在 OpenNETCF.Multimedia.Audio 命名空間下,通過引用 OpenNETCF.dll 就可以使用 Recorder 和 Player 這兩個類。我使用的是 v1.4 版。

錄音:
Recorder recorder = new Recorder();
// stream 必須是 recorder 所在類的欄位,seconds 是錄音的最長時間
recorder.RecordFor(stream, seconds, SoundFormats.Mono8bit11kHz);

停止錄音:
recorder.Stop();

播放:
Stream s = File.OpenRead(file);
Player player = new Player();
player.Play(s);

停止播放:
player.Stop();

實現原理:如何註冊鍵盤的5鍵為錄音快速鍵呢?Windows CE 提供了 RegisterHotKey 函數用於註冊系統級的快速鍵,而 UnregisterHotKey 函數則用於登出系統級快速鍵。

[DllImport("coredll.dll", EntryPoint = "RegisterHotKey", SetLastError = true)]
private static extern bool RegisterHotKey(IntPtr hWnd, int id, KeyModifiers Modifiers, int key);

[DllImport("coredll.dll", EntryPoint = "UnregisterHotKey", SetLastError = true)]
private static extern bool UnRegisterHotKey(IntPtr hWnd, int key);

註冊了系統級的快速鍵後,我們要在 WndProc 方法中截取 WM_HOTKEY 訊息,並進行相應的按鍵事件處理。但是 .NET CF 並沒有像 .NET 完整版那樣,將 WndProc 方法放在 System.Windows.Forms.Form 類中,而是放在了 Microsoft.WindowsCE.Forms.MessageWindow 類中。因此我們需要繼承 MessageWindow,並實現 WM_HOTKEY 訊息的截取。我們可以把註冊快速鍵這個功能封裝到一個類裡面。

錄音程式效果如下:
 

原始碼:VoiceRecorder.rar

在 OpenNETCF 2.0 的官方樣本中提供了一個叫 MobileVoiceNotes 的樣本,也是使用 Recorder 和 Player 類實現的。

用到的工具和組件在這裡找:Windows Mobile Development Tools and Resources

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.