全部产品
媒体转码

视频基本属性

更新时间:2017-06-07 13:26:11   分享:   

返回:简介 >>

媒体库管理-媒体基本信息-示例代码-PHP

  • 简介

    示例如何查询和更新媒体基本信息。

    SDK的安装和使用,参考媒体库SDK-PHP

  • 查询媒体基本信息

    查询媒体提供了2种方式:媒体ID或OSS文件地址。

    • 使用媒体ID查询媒体

      详细参数参考API使用手册->媒体接口->查询媒体-使用媒体ID

      1. include_once 'aliyun-php-sdk-core/Config.php';
      2. use Mts\Request\V20140618 as Mts;
      3. $accessKeyID = 'test'; // 替换成真实的id
      4. $accessKeySecret = 'test'; // 替换成真实的secret
      5. $profile = DefaultProfile::getProfile('cn-hangzhou',
      6. $accessKeyID,
      7. $accessKeySecret);
      8. $client = new DefaultAcsClient($profile);
      1. function queryMediaById($client, $mediaID)
      2. {
      3. $request = new Mts\QueryMediaListRequest();
      4. $request->setAcceptFormat('JSON');
      5. $request->setMediaIds($mediaID);
      6. $response = $client->getAcsResponse($request);
      7. return $response;
      8. }
      9. function printMedia($media)
      10. {
      11. if (array_key_exists('Title', $media)) {
      12. print_r('Title: '.$media->{'Title'}."\n");
      13. }
      14. if (array_key_exists('Description', $media)) {
      15. print_r('Description: '.$media->{'Description'}."\n");
      16. }
      17. if (array_key_exists('Tags', $media)) {
      18. print_r('Tags: '.$media->{'Tags'}->{'Tag'}[0]."\n");
      19. }
      20. if (array_key_exists('CoverURL', $media)) {
      21. print_r('CoverURL: '.$media->{'CoverURL'}."\n");
      22. }
      23. print_r('Format: '.$media->{'Format'}."\n");
      24. print_r('Resolution: '.$media->{'Width'}.'x'.$media->{'Height'}."\n");
      25. print_r('FileSize: '.$media->{'Size'}."\n");
      26. print_r('Bitrate: '.$media->{'Bitrate'}."\n");
      27. print_r('FPS: '.$media->{'Fps'}."\n");
      28. }
      29. $mediaID = 'test'; // 替换成真实的mediaID
      30. $medias = queryMediaById($client, $mediaID)->{'MediaList'}->{'Media'};
      31. for ($i=0; $i < count($medias); $i++) {
      32. printMedia($medias[$i]);
      33. }
    • 使用OSS文件地址查询媒体

      详细参数参考API使用手册->媒体接口->查询媒体-使用OSS文件地址

      1. function queryMediaByURL($client, $mediaURL)
      2. {
      3. $request = new Mts\QueryMediaListByURLRequest();
      4. $request->setAcceptFormat('JSON');
      5. $request->setFileURLs($mediaURL);
      6. $response = $client->getAcsResponse($request);
      7. return $response;
      8. }
      9. $ossEndpoint = 'http://test.oss-cn-hangzhou.aliyuncs.com/';
      10. // OSS的Object不需要"/"开始,替换成真实的ossObject
      11. $ossObject = 'test/测试.mp4';
      12. $medias = queryMediaByURL($client,$ossEndpoint.urlencode($ossObject))->{'MediaList'}->{'Media'};
      13. for ($i=0; $i < count($medias); $i++) {
      14. printMedia($medias[$i]);
      15. }
  • 更新属性

    更新提供了2种更新方式:全量属性更新,单个属性更新。

    • 全量更新属性

      详细参数参考API使用手册->媒体接口->更新媒体-基本信息

      更新时,必须指定所有字段,不设置的字段会被清空。

      1. function updateMediaAllField($client, $mediaID, $title, $description, $tags, $coverURL)
      2. {
      3. $request = new Mts\UpdateMediaRequest();
      4. $request->setAcceptFormat('JSON');
      5. $request->setMediaId($mediaID);
      6. $request->setTitle($title);
      7. $request->setCateId(2663987);
      8. $request->setDescription($description);
      9. $request->setTags($tags);
      10. $request->setCoverURL($coverURL);
      11. $response = $client->getAcsResponse($request);
      12. return $response;
      13. }
      14. $mediaID = 'test'; // 替换成真实的mediaID
      15. $media = updateMediaAllField($client, $mediaID,
      16. 'title', 'description', 'tags', 'coverURL')->{'Media'};
    • 单个更新属性

      不同的字段可以单独更新,使用的是不同API,可以不修改其他字段的情况下,方便的更新单个字段。

      这里通过“发布状态”举例,详细参数参考API使用手册->媒体接口->更新媒体-发布状态

      1. function updateMediaPublishState($client, $mediaID, $state)
      2. {
      3. $request = new Mts\UpdateMediaPublishStateRequest();
      4. $request->setAcceptFormat('JSON');
      5. $request->setMediaId($mediaID);
      6. $request->setPublish($state);
      7. $response = $client->getAcsResponse($request);
      8. return $response;
      9. }
      10. $mediaID = 'test'; // 替换成真实的mediaID
      11. // 更新"发布状态"的API没有返回值,通过捕获异常来判断是否执行成功
      12. try {
      13. updateMediaPublishState($client, $mediaID, "true");
      14. } catch (ClientException $e) {
      15. print_r('ClientException:'."\n");
      16. print_r($e);
      17. } catch (ServerException $e) {
      18. print_r('ServerException:'."\n");
      19. print_r($e);
      20. }

返回:简介 >>

本文导读目录
本文导读目录
以上内容是否对您有帮助?