[英]Changing audio renderer endpoint while playing
我正在使用 Microsoft Media Foundation 編寫音頻播放器。 我想知道是否可以在不重新創建會話的情況下更改播放設備?
IMFActivate *m_p_sink_activate;
...
m_p_sink_activate->SetString(MF_AUDIO_RENDERER_ATTRIBUTE_ENDPOINT_ID, name_device);
如果音頻已經在播放,這不會生效。
順便說一句,Microsoft.Windows.SDK.Contracts (Windows.Media.Playback.MediaPlayer) 提供的媒體播放器做得很完美。 當我更改 m_mediaPlayer.AudioDevice 時,音頻流會立即重定向到指定的設備。 所以我想知道這是否也適用於 MSMF。
到目前為止,我有辦法完成這項工作,
您可以參考 MS 示例 TopoEdit 了解詳細信息。
一個副作用是每次 SetTopology 都會導致巨大的內存增長。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.