読者です 読者をやめる 読者になる 読者になる

眠いしお腹すいたし(´・ω・`)

C#関連を主に書きます。掲載内容は個人の見解であり、所属する企業を代表するものではありません。

ObservableVoiceCaptureをリリースしてみました。

C# Xamarin

この度

www.nuget.org

ObservableVoiceCaptureというライブラリをnugetにリリースしました。

現在のバージョンは0.0.2です。まだ破壊的な変更をするかと思います。

このライブラリは.NET4.5以上、Xamarin.Android、Xamarin.iOSで利用することができます。

github.com

にて管理を行っています。

どんなライブラリ?

音声をキャプチャしたり再生したりできます。

.NET45版ではNAudio

naudio.codeplex.com

を使用して音声データの入出力を行っています。

Xamarin.Android版ではNativeのAudioRecoed/AudioTrackを使っています。

Xamarin.iOS版ではInputAudioQueue/OutputAudioQueueを使っています。

PCMデータをbyteの形で取り扱う非常に低レベルなライブラリです。

特徴は?

インターフェースが全プラットフォームで共通になっています。

サウンドキャプチャはIObservable<byte>でサウンド再生はIObserver<byte[]>になっていて非常にシンプルです。

現時点ではXamairn Pluginの形で提供されていないのですが、近日中にXamarin Pluginに対応しようと思っています。

要するにXamarin Formsで低レベルなオーディオインターフェースをPCL上にて扱えるということになる予定です。

サンプルは?

すいません。間に合っていません。そのうちサンプルアプリを作ろうと思います。

コードのイメージはこんな感じです。

gist.github.com

キャプチャしたPCMデータを1000msecディレイさせてそのまま再生させる例です。

実際に動かすとむっちゃハウリングします(^◇^)

割と簡単にPCMデータのやり取りを行えるようにしているつもりです。

どんなことに使えるの?

これ単体ではあんまり使い道がないかもしれません。

このライブラリは私が今作ろうとしている物の一部をライブラリ化したものです。

PCMデータをエンコードしてネットワーク経由で送信して受信してデコードして再生するとVoIPになったりします。

要するに単体では使えん(^◇^)

ということです。

以上、すごく無駄なエントリーでした(^^)/