Может ли MF / IMFMediaSession интеллектуально поддерживать вставку и удаление устройства? - PullRequest
1 голос
/ 21 апреля 2020
  • У меня есть машина с Win7, когда гарнитура не подключена, на панели задач отображается «значок недоступного динамика», и запускается Пример воспроизведения медиа-сессии Эта программа вызовет ошибку в функции CPlayer :: HandleEvent , hrStatus = MF_E_CANNOT_CREATE_SINK, когда meType = MESessionTopologySet. Приглашение MFTrace:

    ...

    8764,239 C 04: 18: 40.42515 CMFMediaSessionDetours :: EndGetEvent @ 0429FB78 Met = 101 MESessionTopologySet, значение @ 040FF4F8, сбой HrStatus = C00D36FA MF_E_CANNOT_CREATE_SINK ,

    ...

    8764,239 C 04: 18: 40.42524 CTopologyHelpers :: TraceNode @ Node 1 @ 04112FE8 ID: 223C00000002, 1 вход, 0 выходов, тип 0, MF_TOPONODE_TRANSFORM_OBJECTID = {D23E6476-B104-4707-81CB-E1CA19A07016}; MF_TOPONODE_NOTOM_DETO_DEE_STRE 0; MF_TOPONODE_ERRORCODE = MF_E_NO_AUDIO_PLAYBACK_DEVICE

    ...

  • MF SimplePlay и MFPlayer2 также не работают поддержка динамического вставления и удаления c, то есть, если в начале воспроизведения нет устройства визуализации звука, даже если устройство подключено немедленно, звука нет.

  • Я хочу знать, существует ли простой способ автоматической поддержки вставки и удаления устройства ??

    1. Путем косвенной или прямой настройки параметров IMFMediaSession, чтобы программа могла автоматически адаптироваться: нет независимо от того, существует ли устройство по умолчанию, оно может работать нормально?
    2. Или мне нужно запрограммировать себя для реализации интерфейса IMMNotificationClient и перестроить весь IMFMediaSession при вставке аудио устройства визуализации?
    3. Или есть? аналогичный метод IMFPresentationDescriptor :: DeselectStream / MFCreateAudioRendererActivate-ConnectOutput для динамического удаления Добавить или добавить узел?
    4. Или я сам реализую собственный IMFMediaSink для управления и визуализации данных?
...