いんくらyochさんの日記

興味あることの忘備録

OSX10.4.10(Tiger)でA2DP

昨日のエントリーにあった、BT-01HSSをPBG4とペアリングすると下のように認識されます。

この状態でシステム環境設定のサウンドよりStereo Headsetを選択しても、TigerまではA2DP未サポートなので、AMラジオの様に音質が悪く、モノラルで再生されます。HSPHFPで再生されている模様。
いろいろ調べるとTiger上でA2DP再生をしているページがありました。
SkyHorse.Org » Blog Archive » A2DP aka Stereo Bluetooth on Mac OS X: finally an easy and quality solution

ここで紹介されている、a2dpcastAudioDevice.tgz を解凍して出てくる AudioReflectorDriver.kext を kextload でカーネルロードし、a2dpcast を使って再生させる方法ですが、当方のPBG4では、このページの通りにやってもNGでした。
ダウンロードしたアーカイブの中にソースコードが入っていたので、Xcode2.5でビルドして出来たカーネルをロードさせると、サウンドコンパネに「EngineName」なるデバイスが出来ました。

サウンド再生デバイスを EngineName とし、a2dpcast を使ったところ、ブツブツ切れながらも BT-01HSS から再生が可能になりました。(鳴っているのが判る程度の状態ですが、明らかに音質は良いです)
a2dpcastにもソースがあったのですが、Xcode2.5でビルドするとエラーになってしまい、ビルド出来ませんでした。リビルドが出来れば、まともになるかもしれません。

[a2dp 実行時ログ]
$ a2dpcast 00-12-0e-XX-XX-XX 32 'EngineName'

Found audio device "Built-in Audio"
Found audio device "EngineName"
Found audio device "Stereo Headset"

Using audio device "EngineName"

sample rate is 44100, channels is 2
a2dpcast[16694] *** _NSAutoreleaseNoPool(): Object 0x32d3b0 of class NSCFData autoreleased with no pool in place - just leaking
discover : received
SEID = 1
Sent set configurations command
set_config : accepted
open : stream channnel
a2dpcast[16694] *** _NSAutoreleaseNoPool(): Object 0x3056c0 of class NSCFData autoreleased with no pool in place - just leaking
open_stream : ok
start_stream : ok
mtu = 672

frm_len = 69
50301 bytes/sec, hdr.sampling_frequency is 2
Transmitting A2DP, press RETURN to stop.