3

我在一个自动音乐播放器上工作。简而言之,我使用 Last.fm api 来获取很多曲目名称和标签。使用这些标签和一些智能计算算法,一旦你播放了一个曲目,播放器就会设置另一个曲目(标签非常适合之前听过的曲目的标签)。

我使用 youtube API 来搜索电影的 URL,并设法让它工作。现在我想让视频在我的音乐播放器上播放。我试图将 youtube 播放器放在 WebView 上。它有效,但未达到预期。我想控制那个玩家。我希望它自动开始播放,并且我希望在视频结束时引起注意,以便我可以开始下一个。

我应该怎么做才能根据使用 Youtube API 的搜索来播放来自 youtube 的视频,并控制我放置在我的 GUI 上的 youtube 播放器(让它播放并从命令行停止)?或者是否有任何可能的方式下载 youtube 电影并使用 JavaFX API 播放?我搜索了谷歌,发现我无法将 youtube 电影下载为 JavaFX api 可以播放的格式。

4

2 回答 2

3

2015 年 12 月 4 日更新

JavaFX 8 的某些版本无法播放 youtube 视频内容。目前,例如,Java 8u66 无法播放 youtube 视频内容,但 Java 8u72 早期访问版本可以。

另请注意,示例解决方案中引用的某些视频不再可用或受到保护,无法在嵌入式视频播放器中播放。因此,请确保您使用可用的和不受分发限制的视频执行任何测试。如果需要,请参阅 youtube 文档以获取有关分发限制的信息。

我应该怎么做才能播放来自 youtube 的视频的任何线索

作为开始的提示,请参阅在 JavaFX和YouTube HTML5 api中播放 YouTube 视频的代码

这是我在 JavaFX WebView 中链接运行和播放 YouTube 视频的示例代码,通过与 JavaFX“新歌曲”按钮的交互对视频播放进行一些(非常小的)控制。

滑出youtube播放器

或者是否有任何可能的方式下载 youtube 电影并使用 JavaFX API 播放?我搜索了谷歌,发现我无法将 youtube 电影下载为 JavaFX api 可以播放的格式。

我认为这样的使用会违反YouTube 的服务条款。我相信 YouTube 要求您使用 YouTube 视频播放器播放视频(让他们在视频播放器中插入广告等)。

5.1 一个

您同意在未经 YouTube 事先书面授权的情况下,不会在任何媒体上分发网站或服务的任何部分或部分,包括但不限于任何内容,除非 YouTube 通过服务提供的功能提供此类分发的方式(例如 YouTube 播放器);

5.1℃

您同意不通过网站本身的视频播放页面、YouTube 播放器或 YouTube 可能为此目的明确指定的其他方式以外的任何技术或方式访问内容;

于 2013-05-13T23:05:21.587 回答
1

我进步不大,但我遇到了其他问题。

首先,jewelsea 的代码很棒。现在我可以将播放器嵌入到播放器的辅助窗口中,它会根据我使用 youtube api 获得的 URL 显示电影。但看起来 JavaFX 无法显示大部分电影。它显示了 youtube 播放器和一条错误消息,提示我需要安装最新版本的 Adob​​e Flashplayer。根据我的研究,我注意到 webView 只能显示质量设置为 240p 的电影,不能更高。

我在 Google 上搜索了很多如何让我的 webView 播放 240p 质量的视频。首先,我尝试设置 youtube 查询参数(https://developers.google.com/youtube/2.0/developers_guide_protocol_api_query_parameters#formatsp)。我从那里尝试了所有参数:1,5 和 6。但是,我没有获得可以在 JavaFX 的 webView 上查看的格式的电影 URL。

我还尝试将视频质量嵌入到电影的 URL 中,如下所示: http://www.youtube.com/watch?v=og2YZlLhjKs&vq=small:240p ;但它根本不起作用。我还在浏览器中写了那个 URL,看起来 youtube 会自动将视频设置为最高质量,无论我在 URL 中写什么参数。

我使用的 youtube api 代码与此网页中的相同:http ://www.javacodegeeks.com/2010/05/getting-started-with-youtube-java-api.html

我只是将主类代码移动到返回列表中第一个视频的 URL 的方法,并将“query.setOrderBy(YouTubeQuery.OrderBy.VIEW_COUNT);”更改为“query.setOrderBy(YouTubeQuery.OrderBy 。关联);”。这很好用,它显示了我搜索的正确音乐视频的网址。

很抱歉没有显示我的项目代码,但它很大并且包含 2-3 个 api 密钥,如果您告诉我如何将视频 URL http://www.youtube.com/watch?v=og2YZlLhjKs 更改为处理来自这个网站的代码:https://gist.github.com/jewelsea/1437374,然后我会知道如何让它在我的项目上也能工作;

而关于 YouTube 播放 API 的事情也启发了我。我看到 API 有很多功能可以帮助我更轻松地播放视频内容(让它播放,让它停止),但问题是我没有关于 javascript 编程的知识,很遗憾我在 Java API 中也没有这些方法。也许我会试一试并将javascript代码插入我的webview。但是,如果我使用 javascript 编辑 webview... 它会在 JavaFX webView 上播放更高质量的电影吗?

于 2013-05-14T07:09:01.010 回答