Воспроизведение mp3 файла с использованием тега Embed, где источником является файл Ashx и байтовый массив из базы - PullRequest
1 голос
/ 22 декабря 2011

В настоящее время я храню текстовые файлы речи в формате varbinary (max) в базе данных.я хочу воспроизвести эти аудиофайлы, используя тег embed, где источником является файл ashx, который получит идентификатор записи базы данных и запишет байтовый массив.

Мой файл ashx имеет следующий код

byte[] byteArray = ttsMessage.MessageContents;
context.Response.Buffer = true;
context.Response.Clear();
context.Response.ClearContent();
context.Response.ClearHeaders();
context.Response.ContentType = "audio/mpeg";
context.Response.OutputStream.Write(byteArray, 0, byteArray.Length); 
context.Response.End();

Вызов со страницы aspx выглядит следующим образом

Panel5.Controls.Add(new LiteralControl(String.Format("<embed src='/TestArea/PreviewWav.ashx?source={0}' type='audio/mpeg' height='60px' width='144px'/>", ttsMessage.Id.ToString())));

Я получил это для работы со следующими

Panel5.Controls.Add(new LiteralControl(String.Format("<audio controls='controls' autoplay='autoplay'><source src='/TestArea/PreviewWav.ashx?source={0}' type='audio/x-wav' /></audio>", ttsMessage.Id.ToString())));

Использование звукового тега, но не может показатьсячтобы заставить его работать с тегом embed.

Я использую IE9 / VS2010. Есть идеи?

1 Ответ

0 голосов
/ 10 января 2012

Я думаю, что с тегом embed неправильно то, что ... Внедрение тега вызывает плагин наподобие winmediaplayer ocx, чем обработчик, который сначала вызывается с веб-страницы, а медиа-плагин получает URL-адрес ashx, чем он начал вызывать обработчик. Но запросы веб-страницы и плагина медиаплеера различны, поэтому, если вы проверяете аутентификацию пользователей или какую-либо другую информацию заголовка, она не выполняется.

Вы можете легко увидеть это в утилите Fiddler. На в правой верхней части скрипача отображается информация запроса . есть часть пользовательского агента . Посмотри внимательно. Сколько запросов происходит от вашего обработчика, обратите внимание на них. Чем отличаются. за каждый запрос.

Если у вас есть эта проблема, Вы можете использовать систему тикетов или перенаправить зону безопасности для загрузки без заголовка или других проверок запроса. К сожалению, веб-страница не может передавать медиаплеер и другие.

надежда помогает

...