我正在Android中开发一个应用程序,需要通过关键字搜索YouTube的视频.我使用了Youtube数据API,代码如下:
try {
youtube = new YouTube.Builder(Auth.HTTP_TRANSPORT, Auth.JSON_FACTORY, new HttpRequestInitializer() {
public void initialize(HttpRequest request) throws IOException {
}
}).setApplicationName("YoutubeQoE").build();
// Define the API request for retrieving search results.
YouTube.Search.List search = youtube.search().list("id,snippet");
// Set your developer key from the Google Cloud Console for
// non-authenticated requests. See:
// https://cloud.google.com/console
search.setKey(DeveloperKey.DEVELOPER_KEY);
search.setQ("dogs");
// Restrict the search results to only include videos. See:
// https://developers.google.com/youtube/v3/docs/search/list#type
search.setType("video");
// To increase efficiency, only retrieve the fields that the
// application uses.
//search.setFields("items(id/kind,id/videoId,snippet/title,snippet/thumbnails/default/url)");
search.setMaxResults(25); …Run Code Online (Sandbox Code Playgroud) 我在我的应用程序中使用YouTubeStandAlonePlayer播放YouTube视频当我在LightBox模式下使用YouTubeStandAlonePlayer时,只要设备方向发生变化并且不重启活动,视频就会旋转但是当我在全屏模式下使用YouTubeStandAlonePlayer时,它只能以横向模式播放
我的应用程序仅在纵向模式下运行,但是当我通过视频播放视频时.YouTubeStandAlonePlayer我希望它进入全屏,并且能够在方向改变时更改为纵向和横向模式.当用户退出视频时,我希望应用程序返回纵向模式,无论全屏视频的播放方向如何.
播放YouTube视频时,我在Flipboard中看到了此功能
我已经磕磕绊了好几个星期有人可以帮帮我!
我开发了一款Android应用程序,可以使用YouTube API在我的YouTube频道上显示视频.
我直接通过YouTubePlayerView类显示视频.我不在YouTube上使用用户授权,只在我的频道播放播放器中的视频.
我也在同一个Activity中使用了视频广告.我在YouTube视频之前显示视频广告.但我不确定这是如此重要.
此外,我还有另一项活动,显示来自我频道的视频列表.对于列表项,我使用视频标题和缩略图.我使用以下网址从YouTube网站获取标题和缩略图:
http://img.youtube.com/vi/" + url + "/default.jpg
Run Code Online (Sandbox Code Playgroud)
和
http://www.youtube.com/oembed?url=http://www.youtube.com/watch?v=" + id + "&format=json
Run Code Online (Sandbox Code Playgroud)
一切正常.但是当我在Google Play上下载该应用时,我的应用已被删除.这是他们写的:
"经过定期审核后,我们已确定您的应用下载,获利或以其他方式访问违反YouTube服务条款或YouTube API服务条款的YouTube视频.以未经授权的方式访问内容,产品或服务是违反开发者分发协议,不允许在Google Play上播放"
我该怎么做,他们接受了我的申请?
youtube android youtube-api video-streaming android-youtube-api
向YouTube Android Player API库工程师提交错误:请参阅android-youtube-api标记
在过去一周半的过程中,我注意到这个奇怪的BadParcelableException在我们的应用程序中稳步增长,并将其钉在了Android的Android新版本上.
如果您的应用正在播放YouTube视频,将您的应用带到后台,强制停止Youtube应用并再次恢复您的应用,则会发生此崩溃.在Youtube版本12.19.56上可以重现崩溃.还在较旧的YouTube版本12.05.21上进行了测试,但崩溃并不存在.
堆栈跟踪:
main Exception: Unable to start activity ComponentInfo{com.myapp.MainActivity}:
android.os.BadParcelableException: ClassNotFoundException when unmarshalling: asc
Stack: java.lang.RuntimeException: Unable to start activity ComponentInfo{com.myapp.MainActivity}:
android.os.BadParcelableException: ClassNotFoundException when unmarshalling: asc
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2666)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2727)
at android.app.ActivityThread.-wrap12(ActivityThread.java)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1478)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:154)
at android.app.ActivityThread.main(ActivityThread.java:6121)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:889)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:779) Caused by:
android.os.BadParcelableException: ClassNotFoundException when unmarshalling: asc
at android.os.Parcel.readParcelableCreator(Parcel.java:2536)
at android.os.Parcel.readParcelable(Parcel.java:2462)
at android.os.Parcel.readValue(Parcel.java:2365)
at android.os.Parcel.readSparseArrayInternal(Parcel.java:2813)
at android.os.Parcel.readSparseArray(Parcel.java:2068)
at android.os.Parcel.readValue(Parcel.java:2422)
at android.os.Parcel.readArrayMapInternal(Parcel.java:2732)
at android.os.BaseBundle.unparcel(BaseBundle.java:269)
at android.os.Bundle.getSparseParcelableArray(Bundle.java:934)
at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1208)
at …Run Code Online (Sandbox Code Playgroud) youtube android parcelable badparcelableexception android-youtube-api
我正在尝试将包含YouTube播放器的视图添加到我在旋转设备时继续播放的活动.由于UI包含的不仅仅是视频,我使用的是YouTubePlayerFragment.
当方向从纵向更改为横向时,系统应使用不同的布局文件.此布局还包括YouTube播放器作为不占用整个屏幕的视图.您将在下面找到重现问题的最低限度代码(对于全新的Android应用,最低API级别为19).
package com.example.youtubefragmenttest;
import android.app.FragmentManager;
import android.app.FragmentTransaction;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import com.google.android.youtube.player.YouTubeInitializationResult;
import com.google.android.youtube.player.YouTubePlayer;
import com.google.android.youtube.player.YouTubePlayerFragment;
public class MainActivity extends AppCompatActivity implements YouTubePlayer.OnInitializedListener {
private static final String YOUTUBE_DEV_KEY = "[your youtube dev key here]";
private static final String TAG_YOUTUBE_FRAGMENT = "YoutubePlayerFragment";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
FragmentManager fm = getFragmentManager();
YouTubePlayerFragment retainedYoutubeFragment = (YouTubePlayerFragment) fm.findFragmentByTag(TAG_YOUTUBE_FRAGMENT);
if (retainedYoutubeFragment == null) {
retainedYoutubeFragment = YouTubePlayerFragment.newInstance();
retainedYoutubeFragment.setRetainInstance(true);
FragmentTransaction fragmentTransaction = fm.beginTransaction();
fragmentTransaction.add(R.id.youtube_fragment, retainedYoutubeFragment, TAG_YOUTUBE_FRAGMENT);
fragmentTransaction.commit(); …Run Code Online (Sandbox Code Playgroud) 我正在构建一个嵌入 YouTube 视频的 Android 应用程序。我对 YouTube Data API v3 的计费方式感到困惑。是否取决于 API 是从 GCP 服务器还是 AWS 服务器调用?
在我的应用程序中,我需要getSupportActionBar()更改其标题并启用home作为后退按钮.我还需要有一个YouTubePlayerView显示视频.我无法扩展ActionBarActivity,并YouTubeBaseActivity在同一时间.解决此类问题的正确方法是什么?
无论播放器的风格或视频是什么,YouTube广告都不会展示.
实际YouTube版本:10.18.55 YouTube Android Player API:1.2.1
我记得在开发我的应用程序时看到了一些广告.现在,经过数百次测试,我看不到任何广告.这实际上是一个问题,因为我的应用因"未经授权使用"YouTube API而不断被暂停或拒绝.Google Play支持小组认为我以某种方式停用了广告.请确认问题.
我正在尝试在不停止 PIP 模式的情况下播放 YouTube 视频的画中画模式。但是视频在黑屏进入 PIP 时停止播放,即使手动调用 player.play() 方法也不会播放。我看到它工作的唯一方法是创建一个新的 Fragment 实例并再次 initialize() 。如何播放符合以下要求的视频?
- 进入 PIP 模式时,YouTube 视频应继续播放而不会停止/暂停
- newInstance() 丢失缓冲区 + 导致重新加载延迟,需要连续播放
- API 必须允许选择播放质量(“小”、“大”等)。所以 IFRAME API 不是一个选项
- 不应破坏 YouTube 的 TOS,因此其他支持 DASH 网址等的外部视频播放器看起来也不像是一个选项
- 最好 Activity 应该扩展 AppCompatActivity 而不是 YouTubeBaseActivity
注意:从 PIP 返回到完整模式时,视频会连续播放,没有问题。
尝试了以下方法:
- 尝试了不使用画中画的有界和无界服务,仍然连续播放是一个问题。
- Francesco 的 android youtube 播放器 API(视频可以无缝播放,但由于 YouTube 的 API 限制无法更改播放质量)
- 使用 YoutTubePlayerSupportFragment 在 Activity 和 Player 的 onPictureInPictureModeChanged()、onPause() 和 onStopped() 事件上手动调用 play()(视频不会播放,保持黑屏)
- 删除视图/布局并在 PIP 上尝试 YouTubePlayer.setFullscreen(true)
- 尝试在布局上仅使用一个空的 FrameLayout 来检查叠加层是否导致问题,否
- Android Studio 调试日志中也没有报告 Overlays 的错误
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto" …Run Code Online (Sandbox Code Playgroud) java android youtube-api android-youtube-api android-picture-in-picture
我们最近启用了用于读取用户 YouTube 频道 ID 的 YouTube 数据 API。在我们创建的测试项目中一切正常。
现在我们请求访问我们生产项目的 YouTube 范围,并获得了谷歌的批准。
但是当我们尝试使用该项目时,我们收到了这个错误。
{
"domain": "usageLimits",
"reason": "accessNotConfigured",
"message": "Access Not Configured. YouTube Data API has not been used in project 123 before or it is disabled. Enable it by visiting https://console.developers.google.com/apis/api/youtube.googleapis.com/overview?project=123 then retry. If you enabled this API recently, wait a few minutes for the action to propagate to our systems and retry.",
"extendedHelp": "https://console.developers.google.com/apis/api/youtube.googleapis.com/overview?project=123" } ], "code": 403, "message": "Access Not Configured. YouTube Data API has not been used …Run Code Online (Sandbox Code Playgroud) android sha1 youtube-api android-youtube-api google-developers-console