- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我试图将 YouTubePlayerView 放入我的适配器中,但没有成功。
我不想调用新的 Intent。我想在我的应用程序中显示视频。
我将 YouTubeAndroidPlayerApi.jar 放在我的文件夹 libs 中并查看项目属性,一切正常(我遵循了这个 tutorial )
这是我的 XML 代码和日志。
<LinearLayout
android:id="@+id/ll_contentExercicios_LayoutVideoGif"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal" >
<com.google.android.youtube.player.YouTubePlayerView
android:id="@+id/vv_contentExercicios_YoutubeVideo"
android:layout_width="300dp"
android:layout_height="150dp" />
<ImageView
android:id="@+id/iv_contentExercicios_GifExercicio"
android:layout_width="100dp"
android:layout_height="150dp"
android:layout_marginLeft="30dp" >
</ImageView>
</LinearLayout>
10-29 13:03:42.598: E/AndroidRuntime(4513): FATAL EXCEPTION: main
10-29 13:03:42.598: E/AndroidRuntime(4513): java.lang.RuntimeException: Unable to start activity ComponentInfo{br.com.timo.atlas/br.com.timo.atlas.PrincipalActivity}: android.view.InflateException: Binary XML file line #121: Error inflating class com.google.android.youtube.player.YouTubePlayerView
10-29 13:03:42.598: E/AndroidRuntime(4513): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2097)
10-29 13:03:42.598: E/AndroidRuntime(4513): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2122)
10-29 13:03:42.598: E/AndroidRuntime(4513): at android.app.ActivityThread.access$600(ActivityThread.java:140)
10-29 13:03:42.598: E/AndroidRuntime(4513): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1228)
10-29 13:03:42.598: E/AndroidRuntime(4513): at android.os.Handler.dispatchMessage(Handler.java:99)
10-29 13:03:42.598: E/AndroidRuntime(4513): at android.os.Looper.loop(Looper.java:137)
10-29 13:03:42.598: E/AndroidRuntime(4513): at android.app.ActivityThread.main(ActivityThread.java:4895)
10-29 13:03:42.598: E/AndroidRuntime(4513): at java.lang.reflect.Method.invokeNative(Native Method)
10-29 13:03:42.598: E/AndroidRuntime(4513): at java.lang.reflect.Method.invoke(Method.java:511)
10-29 13:03:42.598: E/AndroidRuntime(4513): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:994)
10-29 13:03:42.598: E/AndroidRuntime(4513): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:761)
10-29 13:03:42.598: E/AndroidRuntime(4513): at dalvik.system.NativeStart.main(Native Method)
10-29 13:03:42.598: E/AndroidRuntime(4513): Caused by: android.view.InflateException: Binary XML file line #121: Error inflating class com.google.android.youtube.player.YouTubePlayerView
10-29 13:03:42.598: E/AndroidRuntime(4513): at android.view.LayoutInflater.createView(LayoutInflater.java:613)
10-29 13:03:42.598: E/AndroidRuntime(4513): at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:687)
10-29 13:03:42.598: E/AndroidRuntime(4513): at android.view.LayoutInflater.rInflate(LayoutInflater.java:746)
10-29 13:03:42.598: E/AndroidRuntime(4513): at android.view.LayoutInflater.rInflate(LayoutInflater.java:749)
10-29 13:03:42.598: E/AndroidRuntime(4513): at android.view.LayoutInflater.rInflate(LayoutInflater.java:749)
10-29 13:03:42.598: E/AndroidRuntime(4513): at android.view.LayoutInflater.inflate(LayoutInflater.java:489)
10-29 13:03:42.598: E/AndroidRuntime(4513): at android.view.LayoutInflater.inflate(LayoutInflater.java:396)
10-29 13:03:42.598: E/AndroidRuntime(4513): at br.com.timo.atlas.adapters.ExerciciosAdapter.getView(ExerciciosAdapter.java:107)
10-29 13:03:42.598: E/AndroidRuntime(4513): at br.com.timo.atlas.adapters.MusculoAdapter.getView(MusculoAdapter.java:185)
10-29 13:03:42.598: E/AndroidRuntime(4513): at br.com.timo.atlas.PrincipalActivity.onCreate(PrincipalActivity.java:275)
10-29 13:03:42.598: E/AndroidRuntime(4513): at android.app.Activity.performCreate(Activity.java:5163)
10-29 13:03:42.598: E/AndroidRuntime(4513): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1094)
10-29 13:03:42.598: E/AndroidRuntime(4513): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2061)
10-29 13:03:42.598: E/AndroidRuntime(4513): ... 11 more
10-29 13:03:42.598: E/AndroidRuntime(4513): Caused by: java.lang.reflect.InvocationTargetException
10-29 13:03:42.598: E/AndroidRuntime(4513): at java.lang.reflect.Constructor.constructNative(Native Method)
10-29 13:03:42.598: E/AndroidRuntime(4513): at java.lang.reflect.Constructor.newInstance(Constructor.java:417)
10-29 13:03:42.598: E/AndroidRuntime(4513): at android.view.LayoutInflater.createView(LayoutInflater.java:587)
10-29 13:03:42.598: E/AndroidRuntime(4513): ... 23 more
10-29 13:03:42.598: E/AndroidRuntime(4513): Caused by: java.lang.IllegalStateException: A YouTubePlayerView can only be created with an Activity which extends YouTubeBaseActivity as its context.
10-29 13:03:42.598: E/AndroidRuntime(4513): at com.google.android.youtube.player.YouTubePlayerView.(Unknown Source)
10-29 13:03:42.598: E/AndroidRuntime(4513): at com.google.android.youtube.player.YouTubePlayerView.(Unknown Source)
10-29 13:03:42.598: E/AndroidRuntime(4513): ... 26 more
P.S.:我正在阅读 Youtube API 文档,它说 Activity 必须扩展 YouTubeBaseActivity 才能使用 YouTubePlayerView,所以我知道我需要一些方法在我的 BaseAdapter 中创建 YouTubePlayerView。
感谢和问候。
最佳答案
适配器中的 onBindViewHolder() 方法应该如下所示...
@Override
public void onBindViewHolder(final VideoInfoHolder holder, final int position) {
final YouTubeThumbnailLoader.OnThumbnailLoadedListener onThumbnailLoadedListener = new YouTubeThumbnailLoader.OnThumbnailLoadedListener(){
@Override
public void onThumbnailError(YouTubeThumbnailView youTubeThumbnailView, YouTubeThumbnailLoader.ErrorReason errorReason) {
}
@Override
public void onThumbnailLoaded(YouTubeThumbnailView youTubeThumbnailView, String s) {
youTubeThumbnailView.setVisibility(View.VISIBLE);
holder.relativeLayoutOverYouTubeThumbnailView.setVisibility(View.VISIBLE);
}
};
holder.youTubeThumbnailView.initialize(Resources.KEY, new YouTubeThumbnailView.OnInitializedListener() {
@Override
public void onInitializationSuccess(YouTubeThumbnailView youTubeThumbnailView, YouTubeThumbnailLoader youTubeThumbnailLoader) {
youTubeThumbnailLoader.setVideo(VideoID[position]);
youTubeThumbnailLoader.setOnThumbnailLoadedListener(onThumbnailLoadedListener);
}
@Override
public void onInitializationFailure(YouTubeThumbnailView youTubeThumbnailView, YouTubeInitializationResult youTubeInitializationResult) {
//write something for failure
}
});
}
然后在适配器的 viewHolder 类中-> 像这样实现 onclick 监听器...
public class VideoInfoHolder extends RecyclerView.ViewHolder implements View.OnClickListener {
protected RelativeLayout relativeLayoutOverYouTubeThumbnailView;
YouTubeThumbnailView youTubeThumbnailView;
protected ImageView playButton;
public VideoInfoHolder(View itemView) {
super(itemView);
playButton=(ImageView)itemView.findViewById(R.id.btnYoutube_player);
playButton.setOnClickListener(this);
relativeLayoutOverYouTubeThumbnailView = (RelativeLayout) itemView.findViewById(R.id.relativeLayout_over_youtube_thumbnail);
youTubeThumbnailView = (YouTubeThumbnailView) itemView.findViewById(R.id.youtube_thumbnail);
}
@Override
public void onClick(View v) {
Intent intent = YouTubeStandalonePlayer.createVideoIntent((Activity) ctx, Resources.KEY, VideoID[getLayoutPosition()]);
ctx.startActivity(intent);
}
}
首先从
替换你的小部件`<com.google.android.youtube.player.YouTubePlayerView
android:id="@+id/vv_contentExercicios_YoutubeVideo"
android:layout_width="300dp"
android:layout_height="150dp" />`
到
`<com.google.android.youtube.player.YouTubeThumbnailView
android:id="@+id/youtube_thumbnail"
android:layout_width="match_parent"
android:layout_height="250dp"
android:scaleType="centerCrop"
android:visibility="visible"/>
`
关于android - 错误 YouTubePlayerView XML,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19664890/
这个问题之前已经被问过here ,但我想提供更多信息。YouTubePlayerView 在滚动时通常会出现黑色轮廓,这可能会在暂停和更改旋转后发生。当我滚动并且它被覆盖时,似乎会发生这种情况,因此它
我想将 YouTube 视频与在 YouTube 应用上观看视频时显示的广告一起集成到我的应用中。 所以我想知道使用 YouTubePlayerView 是否可以解决我的问题,或者我是否必须使用 Yo
我正在使用 YouTubePlayerView 加载视频。视频播放成功,但是当屏幕旋转时,它停止播放。我该如何解决这个问题?这可能是一件简单的事情。我用谷歌搜索但没有得到帮助,但需要你的帮助.....
我在我的项目中使用了 YouTubePlayerView。但是播放视频时出现问题。 我在一些设备上测试过它, Moto lollipop (api 22) --> 显示“不幸的是 Youtube 已停
我使用以下 Activity 从我的应用程序启动了一个 YouTube 视频。启动 Activity 时,将播放 youtube 视频。但是当我改变屏幕的方向时,视频没有恢复而是从头开始。这里有什么问
我想在我的应用程序上实现 YouTube 播放器 View ,但由于我的应用程序是一个闹钟,我不希望用户能够暂停/停止视频或更改音量。我试图在 YouTube 播放器 View 上放置一个 View
是否可以在滚动 RecyclerView 时使用 Youtube API 自动播放视频? 最佳答案 是的,这是可能的。看这个例子:https://androidtutorialmagic.wordpr
我没有运气让 youtube-api 在 android 上工作。我正在努力获得最低限度的工作 - 只需通过公共(public)访问(无 oauth)播放视频。我有一个来自谷歌的 key ,我在我的模
I'm making an application that implements the picture in picture functionality in android. When you
我试图将 YouTubePlayerView 放入我的适配器中,但没有成功。 我不想调用新的 Intent。我想在我的应用程序中显示视频。 我将 YouTubeAndroidPlayerApi.jar
我想在 YouTubePlayerView 中添加一个按钮但不知道这样做的最佳方法。我希望只有当用户单击屏幕以调出 youtube 控件(播放/暂停、时间轴、共享等)时,该按钮才会出现,这些控件会在几
首先,我想指出,在 Android 中似乎存在一个限制,即在 ScrollView 上使用 SurfaceView 无法正常工作预计。这是解释here(VideoView 在内部使用了 Surface
我有一个 fragment ,它有一堆安卓 View 来播放各种媒体项目——图像、mp4 视频、pdf。 我想支持 YouTubePlayerView 以支持播放 youtube 视频。我知道使用 Y
我有一个可以以编程方式创建多个 YouTubePlayerView 的 Activity ,这是包含每个 YouTubePlayerView 的类。 public class MyYouTubeVie
我的 Activity 有一个 YouTubePlayerView,它必须显示在 SurfaceView(相机预览)上。 但是,由于 YouTubePlayerView 的视频 View 也使用了 S
我正在开发 ARKit 应用程序,我正在检测平面图并使用 YoutubePlayerView 添加 YouTube 视频 pod 浮出水面。我设法检测到表面并添加了 YouTubePlayerView
我正在使用 YouTube API,我想在全屏模式下对 YouTubePlayerView 应用 Swipe 左右手势。 当 YouTubePlayerView 处于全屏模式时,滑动 手势在 Andr
我正在尝试使用 Youtube API 将 youtube 视频嵌入到 android 应用程序中。我导入了 jar,将它添加到我的构建路径,并在我的主视图中添加了一个 YouTubePlayerVi
我正在创建一个应用程序,它将从 youtube 加载视频。我遇到的问题是我无法弄清楚如何在 android fragment 中实例化 YoutubePlayerView,因为我的应用程序只有一个 A
我正在 YouTubePlayerView(在 android 设备中)加载视频。最初它播放 2 秒,然后通过在其上显示播放按钮停止。如果我再次按下播放按钮,视频会播放 2 秒然后暂停。 最佳答案 我
我是一名优秀的程序员,十分优秀!