mesd/phantasos-client-bundle

MESD Phantasos 客户端捆绑包

安装次数: 2,984

依赖关系: 0

建议者: 0

安全: 0

星标: 0

关注者: 13

分支: 0

类型:symfony-bundle

v0.1.2 2017-09-27 17:08 UTC

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 当前支持的所有媒体类型。

由于目前尚未完成或部署直接从服务器到最终用户的流式传输支持,客户端在播放方面可能会发生变化。