在Swift 3中从服务器流式传输mp3文件

时间:2017-03-22 06:09:00

标签: ios swift3 avplayer audio-streaming

我正在尝试从基于centOS的服务器流式传输mp3文件,我已将文件上传到服务器并尝试在AvPlayer中打开它,但实际上它下载并播放它,当我在浏览器中打开相同的链接时它能够要流式传输文件,它会在5秒内开始播放。 有没有任何解决方案可以使用swift在iOS应用程序中做同样的事情?

1 个答案:

答案 0 :(得分:0)

在我的情况下,我使用php来表示IOS应用程序将通过stream.php播放mp3文件:

<?php
set_time_limit(0);
$filePath = $dirPath . "/songname.mp3";
$strContext=stream_context_create(
    array(
        'http'=>array(
        'method'=>'GET',
        'header'=>"Accept-language: en\r\n"
        )
    )
);
$fpOrigin=fopen($filePath, 'rb', false, $strContext);
header('Content-Disposition: inline; filename="songname.mp3"');
header('Pragma: no-cache');
header('Content-type: audio/mpeg');
header('Content-Length: '.filesize($filePath));
while(!feof($fpOrigin)){
  $buffer=fread($fpOrigin, 4096);
  echo $buffer;
  flush();
}
fclose($fpOrigin);

然后我将网址传递给swift:http://domain/stream.php