我已经可以在YouTube Live中创建广播事件,现在我正在尝试使用更新API修改现有的事件。
问题是VideoSnippet库不允许这样做,必须以其他方式完成。
(这个PHP函数将由带有ajax请求的前端调用)
function updateBroadcast(){
if(!isset($client)){
$client = getClient();
}
$streamData = $_POST['streamData'];
$client->setAccessToken($_SESSION['google_access_token']);
$service = new Google_Service_YouTube($client);
if ($client->getAccessToken()) {
try {
$videoId = $streamData['id'];
// Call the API's videos.list method to retrieve the video resource.
$listResponse = $service->videos->listVideos("snippet",
array('id' => $videoId));
if (empty($listResponse)) {
return json_encode(sprintf('Can\'t find a video with video id: %s', $videoId));
} else {
// Since the request specified a video ID, the response only
// contains one video resource.
$video = $listResponse[0];
$videoSnippet = $video['snippet'];
$videoSnippet->setTitle($streamData['eventName']);
$videoSnippet->setDescription($streamData['eventCategory']);
$videoSnippet->setScheduledStartTime($streamData['eventDateTime'])
}
} catch (Google_Service_Exception $e) {
echo sprintf('<p>A service error occurred: <code>%s</code></p>',
htmlspecialchars($e->getMessage()));
} catch (Google_Exception $e) {
echo sprintf('<p>An client error occurred: <code>%s</code></p>',
htmlspecialchars($e->getMessage()));
}
return json_encode("Video Updated");
}
}
它抛出了这个错误:
致命错误:在第242行的/var/www/html/production/app/empowerir/php/videoStreaming/functions.php中调用未定义的方法Google_Service_YouTube_VideoSnippet :: setScheduledStartTime()
第242行是:
$videoSnippet->setScheduledStartTime($streamData['eventDateTime'])
答案 0 :(得分:0)
如果您阅读了错误,它应该已经告诉您问题所在:
调用未定义的方法 Google_Service_YouTube_VideoSnippet :: setScheduledStartTime()
看LiveBroadcasts.update,没有这样的方法setScheduledStartTime
(看起来你是在飞行中发明的)。如果您要更新snippet.scheduledStartTime
媒体资源,则必须在LiveBroadcasts.update
请求的请求正文中进行设置。