はじめに
数ヶ月前にAndroidTVなデバイスを2つ入手したので、手持ちのAVアンプに接続した際の音周りの情報について記しておく。 使用し始めて、AndroidTVに対応した音楽プレーヤーでハイレゾやマルチチャンネルに対応したのがなさそうだったので、実際のところどうなのよ?という疑問が湧いたので確かめた。
購入した機器
- nvdia shield tv pro
- Chromecast with google tv
接続しているAVアンプ
STR-DN2030
AVアンプに接続した際の音周りの情報の取得方法
手軽に知りたかったので、ある程度の環境が整っていたXamarin.Androidを使用して、Android.Media.AudioDeviceInfoをとるアプリ?を作って情報を得た。 アウトプットデバイスは複数あったがHDMIの情報のみを以下に記載する。
nvdia shield tv pro
---ProductName--- SHIELD Android TV ---Address--- ---Type--- Hdmi ---GetChannelCounts--- 1,2,4,6,7,8 ---GetChannelIndexMasks--- ---GetChannelMasks--- 4,12,204,252,1052,1276,6396 ---GetEncodings--- Pcm16bit,PcmFloat,Ac3,EAc3,Dts,DtsHd,Iec61937,DolbyTruehd ---GetSampleRates--- 8000,11025,12000,16000,22050,24000,32000,44100,48000,64000,88200,96000,128000,176400,192000
AndroidのAudioFormatの情報とXamarin.Androidを使用した場合のAndroid.Mediaの情報は以下URLを参照した。
- https://developer.android.com/reference/android/media/AudioFormat.html
- https://docs.microsoft.com/ja-jp/dotnet/api/android.media.channelout?view=xamarin-android-sdk-9#fields
なお、対応しているチャンネルマスクについては、以下になる。
Mono Stereo Quad FivePointOne Surround 1276 = 1024(BackCenter) | 252(FivePointOne) = 6.1ch C7point1Surround
Chromecast with google tv
---ProductName--- Chromecast ---Address--- ---Type--- Hdmi ---GetChannelCounts--- 2,6,8 ---GetChannelIndexMasks--- ---GetChannelMasks--- 12,252,6396 ---GetEncodings--- Pcm16bit,Ac3,EAc3,Dts,DtsHd,Iec61937,DolbyTruehd ---GetSampleRates--- 32000,44100,48000,88200,96000,128000,176400,192000
対応しているチャンネルマスクは以下になる。
Stereo FivePointOne C7point1Surround
所感
同じデバイスに接続しているはずなのに取得できる情報が違うことにびっくりした。 AndroidTVに対応した音楽プレーヤーでハイレゾ(例えばFLAC 24bit/192Khzなの)が再生できるのかとかPCMなマルチチャンネルは再生できるかということろの調査の初手として手を動かしてみたが、 ハイレゾ再生(24bit/192Khz)はnvdia shield tv proではアプリが対応していれば可能そうだが、Chromecast with google tvではPcmFloat対応についてはOSレベルでの対応が必要と思えるが、GoogleTVはAndroid10で24bitに対応しているはずであるから、ハードウェア的に対応していないのかもしれない(未調査)。
AndroidのHDMIでPCM以外の取り扱いはパススルーなので、対応しているものがあれば、そのまま投げる形になる。 PCMに関してはハードとして対応していても、AndroidのOSレベルでの対応、アプリ側の対応により再生できるものできないものがある。
別途、oboetesterを使用し、AVアンプでPCMのマルチチャンネルおよびハイレゾが再生できるかについて調べてみたが nvdia shield tv proでは、24bit/96Khz 5.1chの再生が可能で、Chromecast with google tvでは、16bit/96Khz 5.1chの再生が可能であった。
そのため、結論としてはアプリの実装次第ということになった。