标签: android-youtube-api

Android 播放器的自定义媒体播放器控件

我想在我的应用程序上播放 YouTube 视频,但使用自定义媒体播放器控件,如下所示:

在此输入图像描述

如果我将这些按钮放在播放器下方的单独布局上,它就可以工作,但我需要覆盖 YouTube 不支持的布局(除了ActionBar)。如何修改 Android 播放器以满足我的需求?是否可以使用不同的媒体播放器(带有VideoView)来播放 YouTube 视频/播放列表?或者可以ActionBar用来包含那些媒体控件,包括SeekBar?请建议。

youtube android youtube-api media-player android-youtube-api

5
推荐指数
1
解决办法
6711
查看次数

YouTubePlayerSupportFragment 和 AppCompatActivity 错误

我正在开发使用 YouTube android API 的应用程序。

\n\n

为了播放视频,我使用了 YouTubePlayerFragment。

\n\n

当我从 Activity 类扩展我的活动时,一切正常,但是当我切换到 AppCompatActivity 时,YouTubePlayerSupportFragment 视频无法启动,并且我在 logcat 中看到以下错误:

\n\n
11-09 21:43:42.770 28199-28199/org.appspot.apprtc E/YouTubeAndroidPlayerAPI: Error creating YouTubePlayerView\n11-09 21:43:42.770 28199-28199/org.appspot.apprtc E/YouTubeAndroidPlayerAPI: com.google.android.youtube.player.internal.w$a: Exception thrown by invoked constructor in com.google.android.youtube.api.jar.client.RemoteEmbeddedPlayer\n11-09 21:43:42.770 28199-28199/org.appspot.apprtc E/YouTubeAndroidPlayerAPI:     at com.google.android.youtube.player.internal.w.a(Unknown Source)\n11-09 21:43:42.770 28199-28199/org.appspot.apprtc E/YouTubeAndroidPlayerAPI:     at com.google.android.youtube.player.internal.w.a(Unknown Source)\n11-09 21:43:42.770 28199-28199/org.appspot.apprtc E/YouTubeAndroidPlayerAPI:     at com.google.android.youtube.player.internal.w.a(Unknown Source)\n11-09 21:43:42.770 28199-28199/org.appspot.apprtc E/YouTubeAndroidPlayerAPI:     at com.google.android.youtube.player.internal.ac.a(Unknown Source)\n11-09 21:43:42.770 28199-28199/org.appspot.apprtc E/YouTubeAndroidPlayerAPI:     at com.google.android.youtube.player.YouTubePlayerView.a(Unknown Source)\n11-09 21:43:42.770 28199-28199/org.appspot.apprtc E/YouTubeAndroidPlayerAPI:     at com.google.android.youtube.player.YouTubePlayerView$1.a(Unknown Source)\n11-09 21:43:42.770 28199-28199/org.appspot.apprtc E/YouTubeAndroidPlayerAPI:     at com.google.android.youtube.player.internal.r.g(Unknown Source)\n11-09 21:43:42.770 28199-28199/org.appspot.apprtc …
Run Code Online (Sandbox Code Playgroud)

android youtube-api android-youtube-api

5
推荐指数
1
解决办法
904
查看次数

无法在 Android 中解析符号 Youtube

我对此感到非常沮丧,我按照所有步骤在我的 android 项目中为 youtube 添加了 google api,但我仍然遇到此错误:无法解析符号 Youtube

这是我的java类:

  import android.app.Activity;
import android.os.Bundle;
import android.widget.GridView;

import com.google.android.youtube.player.YouTubePlayer;
import com.google.android.youtube.player.YouTubeThumbnailLoader;
import  com.google.api.services.youtube.YouTube;


import java.util.List;




public class VideoCatalogActivity extends Activity implements YouTubeThumbnailLoader, YouTubePlayer{

    private static final String TAG =  VideoCatalogActivity.class.getSimpleName();

    private static Youtube youtube;

    GridView videosGrid;

    @Override
    protected void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);
    }
Run Code Online (Sandbox Code Playgroud)

这是我的应用程序 gradle 文件:

     buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
        debug {
            debuggable true
        }

    }
}

dependencies {
    compile fileTree(include: ['*.jar'], dir: 'libs') …
Run Code Online (Sandbox Code Playgroud)

youtube android android-youtube-api

5
推荐指数
1
解决办法
2834
查看次数

Youtube 视频无法在 android 中播放(react-native)

我正在开发一个显示 Youtube 视频的示例应用程序。它在 iOS 上运行完美,但在 Android 上,它不显示播放按钮,而是显示带有旋转图标的黑屏。

我正在使用react-native-youtubeGitHub 项目添加 YouTube 组件。

 <YouTube
     apiKey={'xxxxxxxxxxxx'}
     videoId={xxxxxxxxx}  
     play={true}             
     fullscreen={false}       
     loop={false} 
     onReady={e => this.setState({ isReady: true })}
     onChangeState={e => this.setState({ status: e.state })}
     onChangeQuality={e => this.setState({ quality: e.quality })}
     onError={e => this.setState({ error: e.error })}
     style={[styles.articleImage, allTabFilterSelected ? {}
     styles.articleImageFilterTab]}
 />
Run Code Online (Sandbox Code Playgroud)

在 iOS 上,我的应用程序运行良好,播放按钮有效。但在 Android 上它显示的是一个空的黑屏,如下所示:

在此输入图像描述

请提出一些解决方案!提前致谢。

android android-youtube-api react-native

5
推荐指数
1
解决办法
3169
查看次数

Motion Layout OnSwipe 禁用点击 YoutubePlayer (YoutubePlayer API)

我有一个 YoutubePlayer 在我的 Motion Layout 中播放视频。我想实现这个youtube-like motion https://developer.android.com/training/constraint-layout/motionlayout/examples#youtube-like_motion

这里的问题是,在上面提供的示例中,他们使用 ImageView 而不是 YoutubePlayer 界面来完成动画。但不幸的是,youtube 播放器界面似乎“覆盖”了点击侦听器,并且只允许点击而不是滑动。(这是我的推论)。

我想知道它是如何在 youtube 应用程序中实现的。如果有人可以回答我,请做。我需要这在我的应用程序。

我提出了一个问题,请检查一下。 https://issuetracker.google.com/issues/162155197

这是我尝试过的:

  1. 当设置touchRegionId为 youtube 播放器前面或后面的视图时,界面的点击被完全禁用。动画虽然有效。我看不到此选项的解决方案,因为我认为此行为是设计使然。

  2. 当设置limitBoundsTo为视图时,它会完成它的工作。它将OnSwipe动作区域限制为这样的视图边界。这完全符合我的需要,直到 YOUTUBE 播放器界面初始化。初始化后,OnSwipe不再检测到,界面只侦听点击,例如,您可以暂停视频。如果限制查看的限制大于 youtube 界面,我可以在视图的其余部分滑动。但是 youtube 界面不会收听滑动。也许界面不支持滑动?

  3. 我试过不设置上述任何一项。只是简单的 OnSwipe 与拖动方向。在初始化 youtube 之前,滑动无处不在。当它被初始化时,youtube 播放器界面使用的像素停止监听滑动,它们只监听点击。

考虑到2.和3.,我觉得这是接口本身的问题。不管你有什么建议,请告诉我。谢谢你。

这是我的运动布局:

<androidx.constraintlayout.motion.widget.MotionLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:id="@+id/container"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@color/blackBackground"
    android:nestedScrollingEnabled="false"
    app:layoutDescription="@xml/activity_main_scene"
    app:motionDebug="SHOW_ALL">

    <androidx.constraintlayout.widget.ConstraintLayout
        android:id="@+id/player_background"
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:focusable="false"
        android:focusableInTouchMode="false"
        android:touchscreenBlocksFocus="false"
        android:clickable="false"
        android:background="#000000"
        app:layout_constraintLeft_toLeftOf="parent"
        app:layout_constraintRight_toRightOf="parent"
        app:layout_constraintTop_toTopOf="parent" />

    <FrameLayout
        android:id="@+id/main_player"
        android:layout_width="match_parent"
        android:layout_height="0dp"
        app:layout_constraintBottom_toBottomOf="@id/player_background"
        app:layout_constraintLeft_toLeftOf="parent" …
Run Code Online (Sandbox Code Playgroud)

android android-animation android-layout android-youtube-api android-motionlayout

5
推荐指数
1
解决办法
525
查看次数

如何在Android WebView中播放YouTube视频?

我正在制作RSS阅读器应用程序,我从URL获取RSS数据,RSS数据可以包含YouTube视频的链接.

以下是与youtube vide相关的链接示例:

div class="video-shortcode"><iframe title="YouTube video player" width="600" 
height="350" src="http://www.youtube.com/embed/HXrcUyCVA6c"
frameborder="0" allowfullscreen></iframe></div>
Run Code Online (Sandbox Code Playgroud)

当我运行我的应用程序时,没有视频,它全黑,我无法播放它.

我如何在WebView中播放视频?

编辑: 结果如下:

在此输入图像描述

这是我的代码:

 // set webview properties
    WebSettings ws = desc.getSettings();
    ws.setLayoutAlgorithm(LayoutAlgorithm.SINGLE_COLUMN);
    ws.getPluginState();
    ws.setPluginState(PluginState.ON);
    ws.setJavaScriptEnabled(true);
    ws.setUserAgent(0);
    ws.setJavaScriptCanOpenWindowsAutomatically(true);

    desc.setWebChromeClient(new WebChromeClient() {
    });
    desc.loadDataWithBaseURL("http://www.balkanandroid.com/", feed
    .getItem(pos).getContent(), "text/html", "UTF-8", null);
Run Code Online (Sandbox Code Playgroud)

我的AndroidManifest.xml中有android:hardwareAccelerated ="true".

youtube android android-webview android-youtube-api

4
推荐指数
2
解决办法
3万
查看次数

在ListView中:Activity泄露了最初绑定在此处的ServiceConnection <youtube.player.internal>

更新:

我刚刚在另一台设备上测试了我的应用程序,发现我确实在运行Android 4.4.2的Nexus 4上出现了错误,但没有在运行Android 4.0.4的Desire S上出现错误.他们都安装了当前的YouTube应用程序(5.3.32),这是使用API​​所必需的.

问题:为什么我会收到这些ServiceConnectionLeaked消息?(见下面的Logcat)

描述:

我正在使用YouTube Android Player API 1.0.0(https://developers.google.com/youtube/android/player/)使用以下适配器代码在ListView中加载视频缩略图:

private final Map<View, YouTubeThumbnailLoader> mThumbnailViewToLoaderMap;

public ListViewAdapter(Activity activity, int layoutId, List<Suggestion> suggestions) {
    super(activity, layoutId, suggestions);     
    mThumbnailViewToLoaderMap = new HashMap<View, YouTubeThumbnailLoader>();
}

@Override
public View getView(int position, View convertView, ViewGroup parent) {

    ViewHolder holder;

    String videoId = getYoutubeId();

    // There are three cases here...
    if (convertView == null) {
        convertView = LayoutInflater.from(mActivity).inflate(R.layout.row_suggestion, parent, false);

        holder = new ViewHolder();
        holder.thumbnailView = (YouTubeThumbnailView) convertView.findViewById(R.id.youtubeThumbnail); …
Run Code Online (Sandbox Code Playgroud)

android listview thumbnails serviceconnection android-youtube-api

4
推荐指数
1
解决办法
9791
查看次数

YouTube播放器播放2秒钟并全屏停止

我目前面临两个主要问题,

  1. 我正在使用youtube播放器,当它全屏显示时,播放1-2秒并停止播放.

  2. 当我点击中间的"播放"按钮时,它会再次缓冲.即使灰色条填充到它的中心.

这些问题不是在纵向模式下发生的.

这是我的课,就像youtube api演示有点干扰

public class Video extends YouTubeFailureRecoveryActivity implements YouTubePlayer.OnFullscreenListener, Utils.OnGetUrlListener, View.OnClickListener {

    static int AUTO_PLAY_DELAY = 1000;

    static final int PORTRAIT_ORIENTATION = Build.VERSION.SDK_INT < 9
            ? ActivityInfo.SCREEN_ORIENTATION_PORTRAIT
            : ActivityInfo.SCREEN_ORIENTATION_SENSOR_PORTRAIT;

    private LinearLayout mRootLayout;

    /**
     * * Youtube ***
     */
    YouTubePlayerView mPlayerView;
    YouTubePlayer mPlayer;
    boolean mIsFullscreen;
    String urlID;

    /**
     * * My ***
     */
    RelativeLayout mContainer;
    ImageView mBtPlay;
    boolean mIsNeedSetFlags;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        Utils.getInstance().setActivity(this);

        setContentView(R.layout.video_main);
        mIsNeedSetFlags = true;



        mRootLayout = (LinearLayout) findViewById(R.id.video_root_layout);

       mContainer = …
Run Code Online (Sandbox Code Playgroud)

android android-youtube-api

4
推荐指数
1
解决办法
2513
查看次数

视频暂停,错误为"未经授权的覆盖"

我在全屏模式下播放视频时出现以下错误(仅限全屏).当它全屏显示时,我隐藏了布局中的所有其他组件,但它说android:id/statusBarBackground这是导致问题的视图.我该如何控制?

YouTube video playback stopped due to unauthorized overlay on top of player. The YouTubePlayerView is obscured by android.view.View{16771a9d V.ED.... ........ 0,0-1920,75 #102002f android:id/statusBarBackground}. The view is inside the YouTubePlayerView, with the distance in px between each edge of the obscuring view and the YouTubePlayerView being: left: 0, top: 0, right: 0, bottom: 1005.. 
Run Code Online (Sandbox Code Playgroud)

我的布局看起来像这样:

<?xml version="1.0" encoding="utf-8"?>
<merge xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/container"
    android:layout_width="match_parent"
    android:layout_height="match_parent">
    <LinearLayout
        android:id="@+id/videoListLayout"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_gravity="top"
        android:orientation="vertical">

        <RelativeLayout
            android:layout_width="match_parent"
            android:layout_height="30dp"
            android:background="@drawable/heading" >

            <TextView
                android:id="@+id/topDisplayArea"
                android:layout_width="match_parent"
                android:layout_height="match_parent" …
Run Code Online (Sandbox Code Playgroud)

android youtube-api android-youtube-api

4
推荐指数
1
解决办法
5749
查看次数

在Android中制作完美的Chromeless Youtube播放器

我在创建CHROMELESS时创建的youtube播放器视图就在这里.它正在加载和播放完美,但即使视频完成,缓冲圈也会连续播放.任何人都可以帮助我在不需要时删除缓冲进度并制作一个完美的YouTube播放器吗?

MainActivity.java

package com.rocky.youtubedemo;

import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.widget.Toast;

import com.google.android.youtube.player.YouTubeBaseActivity;
import com.google.android.youtube.player.YouTubeInitializationResult;
import com.google.android.youtube.player.YouTubePlayer;
import com.google.android.youtube.player.YouTubePlayerView;

public class MainActivity extends YouTubeBaseActivity implements YouTubePlayer.OnInitializedListener {

    private static final int RECOVERY_REQUEST = 1;
    private static String YOUTUBE_API_KEY = "";
    private YouTubePlayerView youTubeView;
    private Context context;
    private MyPlayerStateChangeListener playerStateChangeListener;
    private MyPlaybackEventListener playbackEventListener;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        context = this;

        playerStateChangeListener = new MyPlayerStateChangeListener();
        playbackEventListener = new MyPlaybackEventListener();

        YOUTUBE_API_KEY = "PLACE_YOUR_API_KEY_HERE";

        youTubeView = (YouTubePlayerView) findViewById(R.id.youtube_view);
        youTubeView.initialize(YOUTUBE_API_KEY, …
Run Code Online (Sandbox Code Playgroud)

youtube android youtube-api android-youtube-api youtube-data-api

4
推荐指数
1
解决办法
1327
查看次数