【问题标题】:How to read a radio stream by php and stream it out again如何通过 php 读取无线电流并再次流式传输
【发布时间】:2017-08-28 13:20:17
【问题描述】:

我正在尝试从 http 的无线电流 (MP3) 中获取数据,并希望在 https 中将其流式传输出去。 这是我尝试过的:

<?php

define(URL, 'Mymp3stream.com');

$ch = curl_init(URL);

curl_setopt_array($ch, array(
  CURLOPT_CONNECTTIMEOUT => 60,
  CURLOPT_FOLLOWLOCATION => TRUE,
  CURLOPT_RETURNTRANSFER => TRUE, 
  CURLOPT_HEADER => TRUE
));

curl_exec($ch);

我怎样才能让它流式传输? 浏览器不会启动任何音频输出。 即使有标题

header('Content-type: audio/mpeg');
header("Content-Transfer-Encoding: binary");
header("Pragma: no-cache");

浏览器中没有音频。 页面一直在加载。

我还尝试将流读入字符串缓冲区并用以下命令回显:

$stream=fopen($url, 'rb');
 while(!feof($stream)){
   $buffer=fread($stream, 128);
   echo $buffer;
   flush();
 }
fclose($stream); 

另一个尝试是在使用 fopen 打开文件后使用 get_stream_content。 添加标题后有一个小成功: 在 Chrome 中显示了音频播放器,但没有声音开始播放。

【问题讨论】:

标签: php mp3 php-curl


【解决方案1】:

你可以试试这个选项:

curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

curl_exec 将以数组形式返回结果,如 doc 中所述

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-10-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-01
    • 1970-01-01
    相关资源
    最近更新 更多