如何获取在 Chrome 标签中播放的音频名称
Posted
技术标签:
【中文标题】如何获取在 Chrome 标签中播放的音频名称【英文标题】:How to get the name of audio playing in a Chrome tab 【发布时间】:2021-04-21 14:46:57 【问题描述】:我们正在开发一个 Chrome 扩展程序,并试图弄清楚如何获取当前在 Chrome 中播放的音频的名称。我们知道,在 Chrome 中播放音频时,会有一个图标显示正在播放的音频的名称。下面的截图展示了一个例子,其中播放了一个名为“Chrome and the web in 2020”的视频。
有什么方法可以通过我们的 Chrome 扩展程序获取正在播放的视频的标题(本例中为“Chrome and the web in 2020”)?我们希望我们的扩展能够知道用户正在听什么视频或歌曲。谢谢!
【问题讨论】:
【参考方案1】:根据Video resource 的官方文档,可以找到给定YouTube 视频的标题作为属性snippet.title
的值。
可以通过其Videos.list
端点从 API 查询此属性(属于视频资源的任何其他属性)。
例如,在以下 URL 上发出 curl
:
https://www.googleapis.com/youtube/v3/videos?key=$APP_KEY&id=14pb8t1lHws&part=snippet&fields=items/snippet/title&maxResults=1
将调用将生成仅包含该视频标题的JSON response 文本的端点:
"items": [
"snippet":
"title": "Chrome and the web in 2020"
]
对于 javascript GAPI
(即 Google 的浏览器端 JavaScript 客户端库)实现,代码如下所示:
var app_key = ...;
var videoTitle;
function loadAPIClientInterfaces()
gapi.client.load('youtube', 'v3', function()
getVideoTitle('14pb8t1lHws');
);
function getVideoTitle(videoId)
var request = gapi.client.youtube.videos.list(
id: videoId,
part: 'snippet',
fields: 'items/snippet/title',
key: app_key
);
request.execute(function(response)
if ('error' in response)
displayMessage(response.error.message);
else
videoTitle = response.items[0].snippet.title;
);
请注意,上面的代码使用fields
请求参数从Videos.list
端点仅获取视频的标题(最好从API 仅询问实际使用的信息)。
另请注意,$APP_KEY
和 app_key
是(shell 和,分别是 Javascript)变量,设置为包含与通过 Google's developers console 创建的项目关联的有效 API 密钥。
【讨论】:
以上是关于如何获取在 Chrome 标签中播放的音频名称的主要内容,如果未能解决你的问题,请参考以下文章
HTML5 音频标签在 Chrome 中显示错误的 MP3 持续时间