Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> WMA Stream, Необходимо сделать скрипт для стриминга 
:(
    Опции темы
Staser
Дата 26.1.2010, 21:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 12
Регистрация: 15.7.2006

Репутация: нет
Всего: нет



Помогите решить проблему,

Необходимо сделать скрипт поддерживающий стриминг .WMA файлов.

Клиент: Винамп (любые версии)

Скрипт для mp3 с возможностью пропускания (seeking) есть, но если его же использовать под WMA - то все заканчивается на "200 OK".

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

Вот сам скрипт для мп3:
Код

<?php
  $bufsize = 20000;
  $fsize = $arr['size'];
  if(isset($_SERVER['HTTP_RANGE'])) { // Starting partial download
    if(preg_match("/^bytes=(\\d+)-(\\d*)$/", $_SERVER['HTTP_RANGE'], $matches)) { // parsing ranges
      $from = $matches[1];
      $to = $matches[2];
      unset($matches);
      if(empty($to)) $to = $fsize - 1;
      $content_size = $to - $from + 1;
      header("HTTP/1.1 206 Partial Content");
      header("Content-Range: $from-$to/$fsize");
      header("Content-Length: $content_size");
      header('Content-type: audio/x-ms-wma');
      header("Content-Disposition: inline");
      header("Accept-Ranges: bytes");
      header("Content-Transfer-Encoding: binary");

      $fh = fopen($arr['location'], "rb");
       fseek($fh, $from);
//        $bufsize = $fsize - $from;
        $cur_pos = ftell($fh);
            while($cur_pos !== FALSE && ftell($fh) + $bufsize < $to+1) {
              $buffer = fread($fh, $bufsize);
                  print $buffer;
                  $cur_pos = ftell($fh);
            }
        $buffer = fread($fh, $to+1 - $cur_pos);
        print $buffer;
        fclose($fh);
    } else {
      header("HTTP/1.1 500 Internal Server Error");
      exit;
    }
  } else {

    header('Content-type: audio/x-ms-wma');
    header("Content-Length: $fsize");
    header("Accept-Ranges: bytes");
    header("Content-Disposition: inline; filename={$arr['title']}");
    
        readfile($arr['location']);
  }
?>



Веб сервера, которые проигрывают нормально: lighttpd, apache (1.3+)

Разницы в хедерах нет...

Может кто знает в чем дело? Хоть в какую сторону стоит смотреть..

Спасибо.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса

Внимание: данный раздел предназначен для решения сложных, нестандартных задач.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Для профи | Следующая тема »


 




[ Время генерации скрипта: 0.0742 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.