mesd / phantasos-client-bundle
MESD Phantasos 客户端捆绑包
Requires
- php: >=5.3.2
- guzzlehttp/guzzle: ~5.0
- symfony/framework-bundle: ~2.1
This package is not auto-updated.
Last update: 2024-09-28 18:21:14 UTC
README
此 Symfony 捆绑包的目的是提供一组工具,以便连接到我们的简单媒体服务器 Phantasos。
入门
要使用 composer 将捆绑包安装到您的 Symfony 应用程序中,请将客户端添加到应用程序中。
$ composer require mesd/phantasos-client-bundle "~0.1"
然后,将捆绑包添加到您的应用程序内核中。
$bundles = array( ... new Mesd\PhantasosClientBundle\MesdPhantasosClientBundle() );
之后,需要在您的 config.yml 文件中配置客户端的设置。
mesd_phantasos_client: host: %phantasos_host% apikey: %phantasos_apikey% ready_callback_route: my_app_media_callback
主机是 Phantasos 的 rest api 的根目录,而 apikey 是从 Phantasos 生成的用于此应用程序的 apikey。就绪回调路由是可选的,并采用您的应用程序的一个命名 symfony 路由的名称,当媒体处理完成并且准备播放时进行回调。以下是一个此操作将如何显示的示例。操作的方法需要是 POST,并且关于所调用媒体的媒体 ID 位于请求体中 'media_id' 名称下。
/** * @Route('/myapp/media_is_ready', name="my_app_media_callback") * @Method({"POST"}) */ public function myMediaIsDoneCallbackAction(Request $request) { $mediaId = $request->request->get('media_id'); // Application specific stuff here ... return new Response('Message Recieved', 200); }
如果一切如预期进行,则您的应用程序已准备好使用客户端。
## 使用说明 客户端捆绑包将在依赖注入容器中添加一个新的服务 'mesd_phantasos_client',该服务将返回预先构建的 Phantasos 客户端,该客户端包含主机和 apikey 信息,这些信息用于调用媒体服务器。
### 上传 将媒体上传到 Phantasos 是一个两步过程。首先需要从 Phantasos 获取上传票据和上传路由。然后,最终用户将直接将媒体上传到媒体服务器。要从客户端获取上传票据信息,请按以下操作进行。
$ticket = $this->get('mesd_phantasos_client')->requestUploadTicket(); // The upload ticket contains information such as the media id that will need to be saved in your application $mediaLink = new MediaLink() // Or whatever you are using to persist the media information in the using application $mediaLink->setMediaId($ticket->getMediaId()); // Persist the media link and do whatever other application specific things need to be done
获取票据并保存您想要保存的信息后,请向用户提供一个简单的 HTML 上传表单,该表单的动作指向上传票据中提供的 URL。请注意,媒体服务器在上传时会返回一系列响应,因此您可能希望在最终用户端使用一些 JavaScript 来跟踪这些响应,以防出现错误或在使用应用程序端标记媒体已成功上传。
### 播放 要为媒体提供播放功能,最简单的方法是将以下 twig 指令嵌入到您想要显示媒体模板的地方,其中 'myMediaId' 是您想要显示的媒体的媒体 ID,而宽度和高度是您想要显示媒体作为的像素分辨率。
{{ render(url('MesdPhantasosClient_embedMedia', { 'mediaId': myMediaId, 'width': 800, 'height': 600 })) }}
此捆绑包可以支持 PDF、视频、音频和图像,这些都是 Phantasos 当前支持的所有媒体类型。
由于目前尚未完成或部署直接从服务器到最终用户的流式传输支持,客户端在播放方面可能会发生变化。