2017-07-07 69 views
0

我正嘗試使用guzzle加載和播放在子域(subdomain.domain.com)中上傳到主域(domain.com)中的位置的遠程視頻。在laravel中加載一個帶有guzzle的遠程視頻5

我發現很難讓視頻播放。

在刀片文件的視頻播放器的視頻源

`<source src="{{url('video/'.$token.'/'.$videoname)}}" type="{{$video_mime_type}}"> 

以下網址....`

的源路由導致與下面的代碼

控制器
<?php 

namespace App\Http\Controllers; 

use Illuminate\Http\Request; 
use Storage; 
use Response; 
use File; 
use GuzzleHttp\Mimetypes; 
use GuzzleHttp\Client; 
use GuzzleHttp\Stream\Stream; 
use GuzzleHttp\Stream\Utils; 

class ResourceController extends Controller 
{ 


public function show_video_api($videoname) 
{  
    $client = new Client(['base_uri' => 'http://subdomain.domain.com/api/']); 

    $resp = $client->request('GET',"video/".$videoname,['stream'=>true]); 

    $body=$resp->getBody(); 
    echo $body; 

    } 

} 

子站點的API methos如下:

<?php 

namespace App\Http\Controllers\Api; 

use Illuminate\Http\Request; 
use App\Http\Controllers\Controller; 
use Log; 

class ServiceController extends Controller 
{ 

public function video($videoname) 
{ 

    return response()->file(storage_path("app/lesson-files/$videoname")); 
} 
} 

但是,視頻不播放。我需要儘快整理出來,所以我會很感激任何幫助。

謝謝

回答

0

我想在Laravel你必須返回一個Response,而不僅僅是打印的東西到標準輸出(如果不知道它的緩衝)。請創建一個Response對象而不僅僅是echo ing內容。

但最好查看sink option in Guzzle並使用它直接在cURL中輸出響應,跳過PHP。

但是......你可能不想用PHP做任何事情,因爲這是一種非常慢的視頻服務方式。看看nginx,它對於這樣的用例非常靈活和快速。