powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Проблема с HTML 5 тегом audio
5 сообщений из 5, страница 1 из 1
Проблема с HTML 5 тегом audio
    #38387248
D_A_S1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добрый день!
Для проигрывания mp3 файлов на iPad и iPhone я использую тег HTML5 audio на сайте.
Код: html
1.
<audio controls> <source src='file.mp3' type='audio/mp3'>Тег audio не поддерживается вашим браузером.</audio>



Кроме того, мне необходимо при каждом нажатии кнопки play сохранить в БД для статистики что воспроизводит пользователь.
Для этого я регистрирую обработчик http в web.config:
Код: xml
1.
2.
3.
<httpHandlers>
	<add verb="*" path="*.mp3" type="mp3Handler"/>
</httpHandlers>



И сам код файла mp3Handler.cs:
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
public class mp3Handler : IHttpHandler, IRequiresSessionState
{
    public void ProcessRequest(HttpContext context)
    {
        HttpRequest request = context.Request;
        PlayFile(context);
       
    }

    protected void PlayFile(HttpContext context)
    {
        context.Response.Buffer = true;
        context.Response.Clear();
        HttpRequest request = context.Request;
        string filePath = request.AppRelativeCurrentExecutionFilePath;

        // тут в БД сохраняю запись что слушает пользователь        

        filePath = System.Configuration.ConfigurationManager.AppSettings["mp3Catalog"].ToString() + filePath;

        FileStream stream = new FileStream(filePath, FileMode.Open);
        byte[] mp3 = new byte[stream.Length];

        stream.Read(mp3, 0, Convert.ToInt32(stream.Length));
        stream.Close();

        context.Response.ContentType = "audio/mpeg";
        context.Response.OutputStream.Write(mp3, 0, mp3.Length);
        context.Response.End();

      
    }



    public bool IsReusable
    {
        get
        {
            return false;
        }
    }
}



Проблема в том, что тэг audio на странице не позволяет "перемотать" и повторно воспроизвести файл, т.е нажимаешь на кнопку воспроизвести второй раз, результат 0. Если пытаюсь при первом воспроизведении файла прослушать с какой-нибудь минуты, то он не реагирует.
Если я использую для других устройств проигрыватель Flash Player - то все работает нормально.
Подозреваю, что проблема в http обработчике. Подскажите пожалуйста, в чем может быть причина?
Заранее спасибо!
...
Рейтинг: 0 / 0
Проблема с HTML 5 тегом audio
    #38388686
D_A_S1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Нет идей?
...
Рейтинг: 0 / 0
Проблема с HTML 5 тегом audio
    #38388990
Гость123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Скорее всего дело в том, что ваш хэндлер не обрабатывает заголовок Range.
...
Рейтинг: 0 / 0
Проблема с HTML 5 тегом audio
    #38389626
D_A_S1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
подробнее по заголовку Range можно?
...
Рейтинг: 0 / 0
Проблема с HTML 5 тегом audio
    #38390841
Гость123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ваш хэндлер не умеет отдавать файл с заданной позиции, а только весь файл целиком.
Подробнее скажет гугл по словам http range partial content
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Проблема с HTML 5 тегом audio
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]