我想使用Google Photos API来使用<video>...</video>
html标签播放视频。我尝试使用baseUrl
,但由于baseUrl
只是图像而无法播放视频。
以下是示例mediaItem
:
{
"id": "AGj1epULNh3net3nkDb1kIh3...",
"productUrl": "https://photos.google.com/lr/photo/some-long-url",
"baseUrl": "https://lh3.googleusercontent.com/lr/some-really-long-url",
"mediaMetadata": {
"creationTime": "2017-08-13T22:09:48Z",
"width": "1920",
"height": "1080",
"video": {
"cameraMake": "Apple",
"cameraModel": "iPhone SE",
"fps": 29.978708303761533,
"status": "READY"
}
},
"filename": "IMG_2281.MOV"
},
我觉得最后一部分filename
必须是其中的重要部分。我尝试将其附加到baseUrl
,但返回404。
答案 0 :(得分:0)
您应该在baseUrl后附加'= dv'。例如:
src="https://lh3.googleusercontent.com/lr/some-really-long-url=dv"
答案 1 :(得分:0)
_renderVideo(item) {
const opts = {
height: '480',
width: '100%'
};
return (
<div className='image-gallery-image'>
<div className='video-wrapper'>
<center>
{
item.mimeType === "video/mp4" ?
<video width="80%" controls>
<source src={item.embedUrl} type="video/mp4" />
</video>
:
<img style={{width:"80%"}} src={item.original} alt="" />
}
</center>
</div>
</div>
);
}
render() {
let images = [];
if (this.props.arr_Photo && this.props.arr_Photo.mediaItems) {
this.props.arr_Photo.mediaItems.map((item, index) => {
images.push(
{
original: item.baseUrl,
thumbnail: item.baseUrl,
embedUrl: item.baseUrl + "=dv",
mimeType: item.mimeType
}
);
});
};
return (
<div className="card">
<div className="card-body">
<h4 className="card-title">
xxx
</h4>
<ImageGallery items={images}
renderItem={this._renderVideo}
onThumbnailClick={this._onSlide}
showPlayButton={false} />
</div>
</div>
);
}