Звуковой файл .wav, хранящийся на сервере, НЕ воспроизводится при загрузке в веб-приложении. - PullRequest
2 голосов
/ 27 марта 2012

Это сценарий, которого я пытаюсь достичь: звук, хранящийся на том же сервере, что и веб-приложение, воспроизводится при выполнении условия на клиенте.Он отлично работает, когда я запускаю его в IDE и изменяю webconfig, чтобы он указывал на сервер, на котором находится БД.Однако при развертывании и доступе к нему через браузер звук не воспроизводится.Тот же самый звук, который звучал, когда я использовал свою машину для разработки.Код:

 var configsetings = new System.Configuration.AppSettingsReader();
 string soundPath= configsetings.GetValue("Notification",typeof(System.String)).ToString();
 var sound = new System.Media.SoundPlayer { SoundLocation = Server.MapPath(soundPath) };
 sound.Load();
 sound.Play();

веб-конфигурация:

<add key="Notification" value="~/beep-4.wav" />

Звуковой файл находится в корневой папке веб-приложения ASP.NET.Так что может быть не так?На сервере нет устройства вывода звука и нет проигрывателя, подобного медиаплееру, тем не менее, эти факторы НЕ помешали ему работать на моем компьютере разработчика.

Ответы [ 2 ]

2 голосов
/ 27 марта 2012

Глядя на код, который вы разместили, я предполагаю, что вы написали его на C #.

Итак, этот код будет выполняться на стороне сервера, а на стороне клиента (веб-браузер) никогда не узнает оэто или о вашем аудио файле.Пожалуйста, прочитайте о программном обеспечении asp.net и о том, как оно работает.Если вы хотите воспроизвести аудиофайл в браузере (на стороне клиента), вам нужно использовать либо javascript , либо flash, либо тег из html5 .

Устанавливая звуковую карту на сервере, вы добьетесь (в лучшем случае) только воспроизведения файла на этом сервере.

1 голос
/ 30 марта 2012

спасибо yms, тег сработал. Я помещаю подпрограмму, которая записывает HTML тега в div во время выполнения, и помещаю его в таймер.

sounddiv.InnerHtml = "<audio preload=\"auto\" autoplay=\"autoplay\">" +
            "<source src=\"" + soundPath + "\" type=\"audio/wav\" />" +
            " Your browser does not support the audio tag. </audio>";

Этот код вызывается из кода в таймере в ответ на условие. Так что звук повторяется каждые 30 секунд. Задача решена. Спасибо, ребята, за помощь.

...