Звук из схемы "ms-winsoundevent" не воспроизводится на Windows 10 Mobile

Я разрабатываю приложение UWP с уведомлениями. Я хочу установить пользовательский звук из схемы winsoundevent для них. На настольной версии он работает нормально, но на мобильной звук не воспроизводится. Как играть это звучит на мобильной версии? Код для исследования:

 RingtoneMediaElement.Source = new Uri("ms-winsoundevent:Notification.Looping.Alarm7", UriKind.RelativeOrAbsolute);
 RingtoneMediaElement.AutoPlay = true;
 RingtoneMediaElement.Play();

1 ответ

  1. ms-winsoundevent является одним из тоста схемы . Таким образом, эта схема используется в содержании тостов с audioтегом like <audio src="ms-winsoundevent:Notification.Mail" loop="false"/>.

    Я не нахожу каких-либо официальных документов о том, что эта схема может быть поддержана в качестве медиа-источника для media element. На мой взгляд, мы не должны использовать его в качестве медиа-источника, хотя он может быть воспроизведен в локальной машине.

    Для ваших требований, чтобы установить пользовательский звук для уведомлений, эта схема может работать, пример кода следующим образом:

    private void btnpushnotification_Click(object sender, RoutedEventArgs e)
    {
        XmlDocument doc = new XmlDocument();
        string xml= $@"
                        <toast scenario='incomingCall'>
                          <visual>
                            <binding template='ToastGeneric'>
                              <text>Looping Audio Toast</text>
                              <text>This toast uses looping audio, useful for scenarios like phone calls.</text>
                            </binding>
                          </visual>
                          <actions>
                            <action arguments = 'answer' content = 'answer' />
                            <action arguments = 'ignore' content = 'ignore' />
                          </actions>
                           <audio src='ms-winsoundevent:Notification.Looping.Alarm7' loop='true'/>
                        </toast>";
        doc.LoadXml(xml);
        var toast = new ToastNotification(doc);
        ToastNotificationManager.CreateToastNotifier().Show(toast);
    }
    

    Я протестировал этот образец на мобильном эмуляторе и Lumia 640, Windows 10 build 14393. Оба работали хорошо. Кроме того, для пользовательского звука существует известная проблема на предыдущей ОС windows phone, упомянутая в этой статье:

    …пользовательский звук не работает. Мы расследуем этот вопрос. На данный момент ms-appx и ms-appdata не работают на настольных компьютерах, и только ms-appdata работает на мобильных устройствах.

    Дополнительные сведения об этой известной проблеме и способах ее решения см. В этом разделе .

    Подробнее о примере кода см. В разделе Аудио сценарий официального образца уведомления .