2012-04-19 12 views
2

私はMedia Foundationを勉強しており、Metroアプリケーションから使用したいと考えています。残念ながら、MFCreateMediaSessionはMetroアプリケーションではサポートされていません。何故ですか?メトロアプリは、アプリでその場で生成されたPCMオーディオを再生するために、どのようにメディアセッションを作成しますか?メトロアプリケーションでMFCreateMediaSessionがサポートされないのはなぜですか?

+2

愛用していたAPIの多くが欠けているWindows 8へようこそ。 –

答えて

2

メトロアプリが独自のメディアセッションをこのように作成しないように設計されているようです。

1)WASAPIを使用して、合成されたPCMオーディオをポンプ:ここ

はあなたのための2つのオプションがあります:ジェームズ・デイリーが提供する以下の答えは、マイクロソフトの、an MSDN Forum threadに(私が追加のマークアップ)は、いくつかの洞察を提供します直接(好ましい) オーディオマネージャ

2)に期待どおりに動作するMedia Foundation Media Engine

いずれのアプローチに差し込むことができるカスタム・ソースを作成します。それぞれの方法を慎重に レビューし、ソフトウェア の要件と比較する必要があります。ほとんどの合成オーディオシナリオでは、WASAPI を使用することをお勧めします。

後に彼は明らか:

をQ. WASAPI:私は私の理解では1つの重要な部分が欠落しています - オーディオデバイスにアクセスするために必要なオブジェクトの初期活性化/インスタンス化を行う方法。 IMMDeviceがMetroスタイルのアプリケーションでサポートされていない場合、オーディオデバイスのハンドルを取得するにはどうすればよいですか?

A.コードは以下の通り:

Platform::String^ id = Windows::Media::Devices::MediaDevice::GetDefaultAudioCaptureId(Windows::Media::Devices::AudioDeviceRole::Console); 
Microsoft::WRL::ComPtr<IAudioClient> pAudioClient = NULL; 
ActivateAudioInterface(id->Data(), __uuidof(IAudioClient), (void**)&pAudioClient); 

Q. Media Foundation Media Engine

は: - 私は右のそれを持っている real-time communication sampleを研究から、それは遊びのためのアプローチを思わ/レコードには、次のようになります遠い?

A.はい、これは合理的なアプローチのようです。

関連する問題