本文为您介绍如何查询和更新媒体基本信息。
功能使用
媒体处理支持通过SDK或API查询和更新媒体基本信息。SDK安装,请参见Java SDK、Python SDK、PHP SDK,示例代码参见下文。如需通过API使用功能,具体接口信息请参见直接调用API处理媒体基本信息。
说明 本文以PHP语言为例。
SDK调用API处理媒体基本信息
- 查询媒体基本信息
媒体处理提供2种查询方式查询媒体基本信息:通过媒体ID查询、通过OSS文件地址查询。
- 使用媒体ID查询媒体基本信息
说明 如需了解参数详细信息,请参考查询媒体-使用媒体ID。
include_once 'aliyun-php-sdk-core/Config.php'; use Mts\Request\V20140618 as Mts; $accessKeyID = 'test****'; // 替换成真实的ID $accessKeySecret = 'test****'; // 替换成真实的secret $profile = DefaultProfile::getProfile('<your Region>',//示例:cn-hangzhou $accessKeyID, $accessKeySecret); $client = new DefaultAcsClient($profile);function queryMediaById($client, $mediaID) { $request = new Mts\QueryMediaListRequest(); $request->setAcceptFormat('JSON'); $request->setMediaIds($mediaID); $response = $client->getAcsResponse($request); return $response; } function printMedia($media) { if (array_key_exists('Title', $media)) { print_r('Title: '.$media->{'Title'}."\n"); } if (array_key_exists('Description', $media)) { print_r('Description: '.$media->{'Description'}."\n"); } if (array_key_exists('Tags', $media)) { print_r('Tags: '.$media->{'Tags'}->{'Tag'}[0]."\n"); } if (array_key_exists('CoverURL', $media)) { print_r('CoverURL: '.$media->{'CoverURL'}."\n"); } print_r('Format: '.$media->{'Format'}."\n"); print_r('Resolution: '.$media->{'Width'}.'x'.$media->{'Height'}."\n"); print_r('FileSize: '.$media->{'Size'}."\n"); print_r('Bitrate: '.$media->{'Bitrate'}."\n"); print_r('FPS: '.$media->{'Fps'}."\n"); } $mediaID = 'test****'; // 替换成真实的mediaID $medias = queryMediaById($client, $mediaID)->{'MediaList'}->{'Media'}; for ($i=0; $i < count($medias); $i++) { printMedia($medias[$i]); }
- 使用OSS文件地址查询媒体基本信息
说明 OSS文件地址指媒体文件路径。例如:
http://example-bucket-****.oss-cn-hangzhou.aliyuncs.com/test/1****.mp4
。如需了解参数详细信息,请参考查询媒体-使用OSS文件地址。function queryMediaByURL($client, $mediaURL) { $request = new Mts\QueryMediaListByURLRequest(); $request->setAcceptFormat('JSON'); $request->setFileURLs($mediaURL); $response = $client->getAcsResponse($request); return $response; } $ossEndpoint = 'http://example-bucket-****.oss-cn-hangzhou.aliyuncs.com/'; // OSS的Object不需要"/"开始,替换成真实的OSS Object $ossObject = 'test/example****.mp4'; $medias = queryMediaByURL($client,$ossEndpoint.urlencode($ossObject))->{'MediaList'}->{'Media'}; for ($i=0; $i < count($medias); $i++) { printMedia($medias[$i]); }
- 使用媒体ID查询媒体基本信息
- 更新媒体属性
媒体处理提供2种更新媒体属性的方式:全量属性更新、单个属性更新。
- 全量属性更新
说明 更新时必须指定所有字段,不设置的字段会被清空。如需了解参数详情,请参考更新媒体-基本信息。
function updateMediaAllField($client, $mediaID, $title, $description, $tags, $coverURL) { $request = new Mts\UpdateMediaRequest(); $request->setAcceptFormat('JSON'); $request->setMediaId($mediaID); $request->setTitle($title); $request->setCateId(2663987); $request->setDescription($description); $request->setTags($tags); $request->setCoverURL($coverURL); $response = $client->getAcsResponse($request); return $response; } $mediaID = 'test'; // 替换成真实的mediaID $media = updateMediaAllField($client, $mediaID, 'title', 'description', 'tags', 'coverURL')->{'Media'};
- 单个属性更新
说明 不同的字段可以单独更新,使用的是不同的API,可以在不修改其他字段的情况下,方便的更新单个字段。本文通过“发布状态”举例,如需了解参数详情,请参考更新媒体-发布状态。
function updateMediaPublishState($client, $mediaID, $state) { $request = new Mts\UpdateMediaPublishStateRequest(); $request->setAcceptFormat('JSON'); $request->setMediaId($mediaID); $request->setPublish($state); $response = $client->getAcsResponse($request); return $response; } $mediaID = 'test'; // 替换成真实的mediaID // 更新"发布状态"的API没有返回值,通过捕获异常来判断是否执行成功 try { updateMediaPublishState($client, $mediaID, "true"); } catch (ClientException $e) { print_r('ClientException:'."\n"); print_r($e); } catch (ServerException $e) { print_r('ServerException:'."\n"); print_r($e); }
- 全量属性更新
直接调用API处理媒体基本信息
说明 直接调用API是指直接在OpenAPI门户调用该接口请求查询或修改媒体基本信息。
下表为查询和更新媒体信息的对应接口。
功能 | 接口 |
---|---|
查询媒体基本信息-使用媒体ID | 查询媒体-使用媒体ID |
查询媒体基本信息-使用OSS文件地址 | 查询媒体-使用OSS文件地址 说明 OSS文件地址指媒体文件路径。例如:
http://example-bucket-****.oss-cn-hangzhou.aliyuncs.com/test/1****.mp4 。
|
(全量)更新媒体属性 | 更新媒体-基本信息 |
(单个)更新媒体属性 |