За последние 24 часа нас посетили 25058 программистов и 1675 роботов. Сейчас ищет 931 программист ...

Проверка валидность аудио потока

Тема в разделе "PHP для новичков", создана пользователем DJTIMOHA, 24 мар 2018.

  1. DJTIMOHA

    DJTIMOHA Активный пользователь

    С нами с:
    5 апр 2015
    Сообщения:
    109
    Симпатии:
    2
    Помогите друзья с кодом на проверку валидности именно аудио потока (радиостанции) типа http://000.000.000.000:8000/;stream.nsv
    Есть радиостанция которая периодически меняет свой адрес потока.
    Как написать пхп код для проверки?
     
  2. Dron-Boy

    Dron-Boy Старожил

    С нами с:
    20 ноя 2014
    Сообщения:
    1.041
    Симпатии:
    126
    если ты используешь html audio то у него есть метод ошибки. просто проверяй его а потом воспроизводи. а на php проверь через file_get_content если отдал не 404 то все ок.
     
  3. DJTIMOHA

    DJTIMOHA Активный пользователь

    С нами с:
    5 апр 2015
    Сообщения:
    109
    Симпатии:
    2
    А можно пример?
     
  4. Dron-Boy

    Dron-Boy Старожил

    С нами с:
    20 ноя 2014
    Сообщения:
    1.041
    Симпатии:
    126
    Код (Javascript):
    1. myaudio.addEventListener("error", function() {
    2. //Тут твои действия
    3. }, true);
    в myaudio обьект аудио тега
    на php
    PHP:
    1. if(!file_get_contents($url)){
    2. //Тут твои действия
    3. }
     
  5. DJTIMOHA

    DJTIMOHA Активный пользователь

    С нами с:
    5 апр 2015
    Сообщения:
    109
    Симпатии:
    2
    JS не реагирует.
    PHP в таймаут уходит
     
  6. Dron-Boy

    Dron-Boy Старожил

    С нами с:
    20 ноя 2014
    Сообщения:
    1.041
    Симпатии:
    126
    Что ты имеешь ввиду в таймаут? ты в переменную myaudio обьект audio занес?
     
  7. DJTIMOHA

    DJTIMOHA Активный пользователь

    С нами с:
    5 апр 2015
    Сообщения:
    109
    Симпатии:
    2
    А можно по подробнее пример. Я реально месяц назад начал вникать в JS и PHP
    Пожалуйста
     
  8. DJTIMOHA

    DJTIMOHA Активный пользователь

    С нами с:
    5 апр 2015
    Сообщения:
    109
    Симпатии:
    2
    Вот нашёл такой пхп код:
    PHP:
    1. function getRemoteFileSize($url){
    2.    $parse = parse_url($url);
    3.    $host = $parse['host'];
    4.    $fp = @fsockopen ($host, 80, $errno, $errstr, 20);
    5.    if(!$fp){
    6.      $ret = 0;
    7.    }else{
    8.      $host = $parse['host'];
    9.      fputs($fp, "HEAD ".$url." HTTP/1.1\r\n");
    10.      fputs($fp, "HOST: ".$host."\r\n");
    11.      fputs($fp, "Connection: close\r\n\r\n");
    12.      $headers = "";
    13.      while (!feof($fp)){
    14.        $headers .= fgets ($fp, 128);
    15.      }
    16.      fclose ($fp);
    17.      $headers = strtolower($headers);
    18.      $array = preg_split("|[\s,]+|",$headers);
    19.      $key = array_search('content-length:',$array);
    20.      $ret = $array[$key+1];
    21.    }
    22.    if($array[1]==200) return $ret;
    23.    else return -1*$array[1];
    24. }
    25.  
    26. $url = "http://78.129.163.82:33477/";
    27.  
    28. $size = getRemoteFileSize($url);
    29. echo $size;
    Решил проблему решить путём проверки страницы.
    В результате выдаёт -404 (типа ошибка) хотя сервер работает, должно быть 200.
    Может что то сервером?
     
    #8 DJTIMOHA, 27 мар 2018
    Последнее редактирование: 27 мар 2018
  9. Dron-Boy

    Dron-Boy Старожил

    С нами с:
    20 ноя 2014
    Сообщения:
    1.041
    Симпатии:
    126
    слушай я же тебе говорил на 404 проверить можно и через file_get_contents
    PHP:
    1. if(file_get_contents("/*Твой урл*/"){
    2.     //твои действия
    3. }
     
  10. DJTIMOHA

    DJTIMOHA Активный пользователь

    С нами с:
    5 апр 2015
    Сообщения:
    109
    Симпатии:
    2
    Я пробовал, выдаёт: HTTP ERROR 500:
    PHP:
    1. if(file_get_contents("http://78.129.163.82:33477/"){
    2. echo ' OKKKKK!';
    3. }
     
  11. Dron-Boy

    Dron-Boy Старожил

    С нами с:
    20 ноя 2014
    Сообщения:
    1.041
    Симпатии:
    126
    посмотри внимательно свой код и увидишь в нем оибку строка один. найди сам ее.
    --- Добавлено ---
    и при отладке програм включай показ ошибок. если не помогает через php то включай в htaccess
    php_flag display_errors 1
     
  12. DJTIMOHA

    DJTIMOHA Активный пользователь

    С нами с:
    5 апр 2015
    Сообщения:
    109
    Симпатии:
    2
    Даже с php_flag display_errors 1 выдаёт

    504 Gateway Time-out
    nginx/1.12.2
     
  13. Dron-Boy

    Dron-Boy Старожил

    С нами с:
    20 ноя 2014
    Сообщения:
    1.041
    Симпатии:
    126
    фюх
    короче ты скобку не закрыл

    PHP:
    1. if(file_get_contents("http://78.129.163.82:33477/")){
    2. echo ' OKKKKK!';
    3. }
    --- Добавлено ---
    у себя я тоже не закрыл ее.
     
  14. DJTIMOHA

    DJTIMOHA Активный пользователь

    С нами с:
    5 апр 2015
    Сообщения:
    109
    Симпатии:
    2
    Я ошибку сразу нашёл)))
    Дело в том что если прописываю URL https://php.ru/index.php код определяет нормально, а http://78.129.163.82:33477/index.html ну не в какую не хочет. Может защита на серваке?
     
  15. Dron-Boy

    Dron-Boy Старожил

    С нами с:
    20 ноя 2014
    Сообщения:
    1.041
    Симпатии:
    126
    Возмоно и защита. Тогда проверяй на js как писал выше если поток не выдает ошибку проигрывай его иначе выеди ошибку
     
  16. DJTIMOHA

    DJTIMOHA Активный пользователь

    С нами с:
    5 апр 2015
    Сообщения:
    109
    Симпатии:
    2
    Никак не могу написать JS
    Пожалуйста можно подробнее(
     
  17. Dron-Boy

    Dron-Boy Старожил

    С нами с:
    20 ноя 2014
    Сообщения:
    1.041
    Симпатии:
    126
    Код (Javascript):
    1. var myaudio = $('#audio');
    2. //В переменную myaudio заносим обьект с id audio;
    3. myaudio.addEventListener("error", function() {
    4. //Тут твои действия если произошла ошибка например
    5. alert('Ошибка, поток не валидный!')
    6. }, true);
     
  18. DJTIMOHA

    DJTIMOHA Активный пользователь

    С нами с:
    5 апр 2015
    Сообщения:
    109
    Симпатии:
    2
    Код (Text):
    1. <script>
    2. var myaudio = $('#audio');
    3. myaudio.addEventListener("error", function() {
    4. alert('Ошибка, поток не валидный!')
    5. }, true);
    6. </script>
    7.  
    8.  
    9. <audio id="audio" controls="controls" src="http://78.129.163.82:33477/;stream.nsv">
    alert не выдает ошибку
     
  19. Dron-Boy

    Dron-Boy Старожил

    С нами с:
    20 ноя 2014
    Сообщения:
    1.041
    Симпатии:
    126
    Так потому что поток рабочий и проигрывается. откуда тут ошибка будет то? если у тебя будет поток не работчий тогда вылезет ошибка
     
  20. DJTIMOHA

    DJTIMOHA Активный пользователь

    С нами с:
    5 апр 2015
    Сообщения:
    109
    Симпатии:
    2
    Я спецом не верный урл прописывал, результата не дал(
     
  21. Dron-Boy

    Dron-Boy Старожил

    С нами с:
    20 ноя 2014
    Сообщения:
    1.041
    Симпатии:
    126
    в консоли ошибки глянь. Должно работать
     
  22. DJTIMOHA

    DJTIMOHA Активный пользователь

    С нами с:
    5 апр 2015
    Сообщения:
    109
    Симпатии:
    2
  23. Dron-Boy

    Dron-Boy Старожил

    С нами с:
    20 ноя 2014
    Сообщения:
    1.041
    Симпатии:
    126
    говорил же консоль открой
    Uncaught ReferenceError: $ is not defined
    я написал с использованием jquery
    у тебя он не подключен
    вот рабочий код

    Код (Text):
    1. <!DOCTYPE html>
    2. <html>
    3. <body>
    4. <script
    5.   src="https://code.jquery.com/jquery-3.3.1.min.js"
    6.   integrity="sha256-FgpCb/KJQlLNfOu91ta32o/NMZxltwRo8QtmkMRdAu8="
    7.   crossorigin="anonymous"></script>
    8. <script>
    9. $(document).ready(function(){
    10.   var myaudio = $("#audio")[0];
    11.   myaudio.addEventListener("error", function() {
    12.       alert("Ошибка, поток не валидный!");
    13.   }, true);
    14. })
    15. </script>
    16. <audio id="audio" controls="controls" src="https://7.129.163.82:33477/;stream.nsv">
    17.  
    18. </body>
    19. </html>
    --- Добавлено ---
    ошибку выдает через сек 10-20
     
  24. DJTIMOHA

    DJTIMOHA Активный пользователь

    С нами с:
    5 апр 2015
    Сообщения:
    109
    Симпатии:
    2
    Ура заработало))) Спасибо огромнейшее !!!!!;):)
     
  25. Dron-Boy

    Dron-Boy Старожил

    С нами с:
    20 ноя 2014
    Сообщения:
    1.041
    Симпатии:
    126
    вобще у audio много интересных событий погугли