标签: android-youtube-api

使用ExoPlayer播放YouTube视频

我有兴趣使用ExoPlayer进行YouTube视频播放.我从ExoPlayer示例中看到他们通过DASH URL播放YouTube视频.

我正在使用Android YouTube API搜索视频,但没有找到获取任何搜索结果的DASH URL的方法.有人知道将YouTube API(v3)与ExoPlayer集成的任何示例(不使用硬编码的视频网址),或者知道如何从YouTube API获取我需要的信息以将视频加载到ExoPlayer中?

android youtube-api android-youtube-api exoplayer

33
推荐指数
1
解决办法
4815
查看次数

在Android应用中嵌入Youtube视频

我正在使用WebView显示嵌入式Youtube视频并且可以在Galaxcy S2(OS 2.3.5)上运行而在Nexus S(OS 2.3.4)上运行,我得到的只是白屏而没有任何视频显示.

这是我正在使用的代码片段和Manifest文件中的声明:

private WebView wv;

private void setWebView()
{
wv = (WebView) findViewById(R.id.webView);

wv.setWebChromeClient(new WebChromeClient());

wv.getSettings().setPluginState(WebSettings.PluginState.ON);

wv.setWebViewClient(new WebViewClient()); 

wv.getSettings();

wv.setBackgroundColor(0x00000000);

wv.setKeepScreenOn(true);

wv.setHorizontalScrollBarEnabled(false);
wv.setVerticalScrollBarEnabled(false);

wv.getSettings().setBuiltInZoomControls(true);

final String mimeType = "text/html";
final String encoding = "UTF-8";
String html = getHTML();

wv.loadDataWithBaseURL("", html, mimeType, encoding, "");

}


public String getHTML()
{

String html = "<html>"

    + "<head>"
 + "</head>"
 + "<body style=\"border: 0; padding: 0\">"
 + "<iframe "
 + "type=\"text/html\" "
 + "class=\"youtube-player\" "
 + "width= 100%\""
 + "\" …
Run Code Online (Sandbox Code Playgroud)

youtube android android-webview android-youtube-api

31
推荐指数
3
解决办法
13万
查看次数

Android 4.4 KitKat随机崩溃(/system/lib/libc.so上的本机崩溃)

我构建了一个应用程序,通过WebView播放YouTube iframe视频,并使用YouTube iframe api控制视频.

(我知道适用于Android的YouTube SDK可能更适合Android应用开发,但目前只有iframe api符合我们的需求)

我发现在Android 4.4 KitKat下运行时应用程序会随机崩溃.

这是Google Play控制台的完整崩溃日志:

Native crash at /system/lib/libc.so
in /system/lib/libc.so (tgkill+12), /system/lib/libc.so (pthread_kill+48)

*** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
Build fingerprint: 'samsung/lt02ltespr/lt02ltespr:4.4.2/KOT49H/T217SVPUBNH4:user/release-keys'
Revision: '9'
pid: 10404, tid: 10660, name: rbbb.myapp >>> com.kkkkrbbb.myapp <<<
signal 6 (SIGABRT), code -6 (SI_TKILL), fault addr --------
r0 00000000 r1 000029a4 r2 00000006 r3 00000000
r4 00000006 r5 00000000 r6 000029a4 r7 0000010c
r8 630b10d0 r9 578211e8 …
Run Code Online (Sandbox Code Playgroud)

android android-webview android-youtube-api android-4.4-kitkat

23
推荐指数
1
解决办法
6243
查看次数

无法导入"google.api.services.samples.youtube.cmdline.Auth;"?

我按照本教程https://developers.google.com/youtube/v3/code_samples/java#search_by_keyword

使用YouTubeData API根据关键字检索YouTube视频

本节给出了错误: "Error:(117, 43) error: cannot find symbol variable auth"

youtube = new YouTube.Builder(Auth.HTTP_TRANSPORT, Auth.JSON_FACTORY, new HttpRequestInitializer() {
                public void initialize(com.google.api.client.http.HttpRequest request) throws IOException {
                }
            })
                    .setApplicationName("youtube-cmdline-search-sample")
                    .build();
Run Code Online (Sandbox Code Playgroud)

我认为这个类没有被导入

import com.google.api.services.samples.youtube.cmdline.Auth;
Run Code Online (Sandbox Code Playgroud)

我在互联网上搜索了其他有此问题的人,但这个问题从来没有得到解答....有人可以帮助我吗?

android-youtube-api

20
推荐指数
1
解决办法
7569
查看次数

Android L Youtube API - IllegalArgumentException:服务意图必须是显式的

我知道在LI上只能绑定声明为显式的服务.在我的应用程序中,我目前正在使用Youtube API,并且在使用LI的设备上运行时总会出现此错误

java.lang.IllegalArgumentException: Service Intent must be explicit: Intent { act=com.google.android.youtube.api.service.START }
Run Code Online (Sandbox Code Playgroud)

如何解决问题,使Youtube API也能在L上运行?

youtube android android-service android-youtube-api

18
推荐指数
2
解决办法
6150
查看次数

为什么 YouTube Player API 在 Android 11 上不起作用?

我尝试了这个 YouTube 视频中解释的如何在 Android 应用程序上播放 YouTube 视频的项目:

https://www.youtube.com/watch?v=Up9BjrIuoXY

我尝试在使用 Android 9 和 Android 10 的设备上播放 YouTube 视频,并且视频播放正确,但在 Android 11 设备中,我在 YouTube 视频窗口中收到了以下消息:

“初始化 YouTube 播放器时出错”。

这是 MainActivity.java 的代码:

package com.example.youtube;

import android.os.Bundle;

import com.google.android.material.floatingactionbutton.FloatingActionButton;
import com.google.android.material.snackbar.Snackbar;
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;

import androidx.appcompat.app.AppCompatActivity;
import androidx.appcompat.widget.Toolbar;

import android.view.View;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.Button;

import android.widget.Toast;

public class MainActivity extends YouTubeBaseActivity {

    Button play_btn;
    YouTubePlayerView youtubePlayerView;
    YouTubePlayer.OnInitializedListener onInitializedListener;

    private static final int RECOVERY_DIALOG_REQUEST = 1;

    @Override
    protected void …
Run Code Online (Sandbox Code Playgroud)

youtube android android-youtube-api

18
推荐指数
5
解决办法
3633
查看次数

无法使用YouTube Android Player API播放一些Youtube视频

例如,此视频无法使用Youtube播放器API播放:https://www.youtube.com/watch?v = OLK1efdt3n8(搜索响应中的其他视频效果正常)

我收到以下消息:

09-25 17:18:50.226  24280-24280/com.mypackagename W/YouTubeAndroidPlayerAPI? Cannot load modern controls UI. Upgrade to the latest version of the Android YouTube API.
09-25 17:19:05.911  24280-24280/com.mypackagename E/YoutubePlayerFragment? video error : INTERNAL_ERROR
Run Code Online (Sandbox Code Playgroud)

YouTubePlayer API版本:1.2.1(最新)

设备上的YouTube应用是最新的,可以播放此视频

视频参数: videoEmbeddable=true videoSyndicated=true

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

17
推荐指数
1
解决办法
7449
查看次数

YouTube API:未连接.调用connect()并等待onConnected()被调用

我在Android应用中使用YouTubeFragment,并在Android 4+设备上遭遇以下崩溃.

java.lang.IllegalStateException: Not connected. Call connect() and wait for onConnected() to be called.
at com.google.android.youtube.player.a.at.i(Unknown Source)
at com.google.android.youtube.player.a.an.k(Unknown Source)
at com.google.android.youtube.player.a.an.a(Unknown Source)
at com.google.android.youtube.player.a.ao.<init>(Unknown Source)
at com.google.android.youtube.player.a.f.a(Unknown Source)
at com.google.android.youtube.player.q.a(Unknown Source)
at com.google.android.youtube.player.a.at.g(Unknown Source)
at com.google.android.youtube.player.a.ax.a(Unknown Source)
at com.google.android.youtube.player.a.aw.a(Unknown Source)
at com.google.android.youtube.player.a.av.handleMessage(Unknown Source)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:5450)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:525)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1187)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1003)
at dalvik.system.NativeStart.main(Native Method)
Run Code Online (Sandbox Code Playgroud)

该片段正在启动如下:

 XYouTubeFragment yFragment = XYouTubeFragment.newInstance(ytVideoId);
 activity.commitFragment(yFragment);
Run Code Online (Sandbox Code Playgroud)

并定义如下:

public class XYouTubeFragment extends YouTubePlayerSupportFragment {

    public static XYouTubeFragment newInstance(String url) …
Run Code Online (Sandbox Code Playgroud)

android youtube-api android-youtube-api

15
推荐指数
1
解决办法
1451
查看次数

移动到youtube应用程序时,Youtube SDK与DeadObjectException崩溃

我的应用使用Youtube Android SDK提供youtube视图.没有问题显示视频但在打开youtube应用程序时崩溃与DeadObjectException.

我的代码如下

//init
FragmentTransaction fragmentTransaction = fm.beginTransaction();

YouTubePlayerSupportFragment fragment = new YouTubePlayerSupportFragment();
fragmentTransaction.replace(R.id.fragmentz, fragment);
fragmentTransaction.commit();

fragment.initialize(Constants.YOUTUBE_DEV_KEY, this);

@Override
public void onInitializationSuccess(YouTubePlayer.Provider provider, final YouTubePlayer youTubePlayer, boolean wasRestored) {
    if (!wasRestored) {
        this.youTubePlayer = youTubePlayer;
        this.youTubePlayer.setShowFullscreenButton(true);
        try {
            this.youTubePlayer.loadVideo(youtubeLink);
            //other stuff
        } catch (IllegalStateException e) {
            Logger.e(e);
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

当1)直接通过意图移动到youtube应用程序或2)通过播放器视图上的youtube图标移动到youtube应用程序时崩溃

崩溃日志如下所示

java.lang.IllegalStateException: android.os.DeadObjectException
        at com.google.android.youtube.api.jar.client.RemoteEmbeddedPlayer.u(SourceFile:506)
        at com.google.android.apps.youtube.api.jar.a.a.t(SourceFile:467)
        at com.google.android.youtube.player.internal.h.onTransact(SourceFile:392)
        at android.os.Binder.transact(Binder.java:361)
        at com.google.android.youtube.player.internal.d$a$a.r(Unknown Source)
        at com.google.android.youtube.player.internal.s.h(Unknown Source)
        at com.google.android.youtube.player.YouTubePlayerView.e(Unknown Source)
        at com.google.android.youtube.player.YouTubePlayerSupportFragment.onSaveInstanceState(Unknown Source)
        at android.support.v4.app.Fragment.performSaveInstanceState(Fragment.java:1647)
        at android.support.v4.app.FragmentManagerImpl.saveFragmentBasicState(FragmentManager.java:1610)
        at …
Run Code Online (Sandbox Code Playgroud)

android youtube-api android-youtube-api

14
推荐指数
1
解决办法
3368
查看次数

com.google.android.gms.auth.GoogleAuthException:UNREGISTERED_ON_API_CONSOLE

我实现了一个Android应用程序,使用户可以直接从应用程序流式传输到YouTube频道.我创建了一个API密钥和一个OAuth 2.0客户端ID在此输入图像描述

但我得到以下com.google.android.gms.auth.GoogleAuthException: UNREGISTERED_ON_API_CONSOLE例外:当我尝试停止某个事件或者当我尝试获取在youtube频道上手动创建的事件时.

我使用以下代码创建一个youtube对象

String accountName = mContext.getString(R.string.google_account_name);
        String apiKey = mContext.getString(R.string.google_api_key);
        String clientID = mContext.getString(R.string.google_api_client_id);
        String clientName = mContext.getString(R.string.google_api_client_name);

        GoogleAccountCredential credential =
                GoogleAccountCredential.usingOAuth2(mContext,
                        Arrays.asList(YouTubeScopes.YOUTUBE));
        credential.setSelectedAccountName(accountName);

//        String SCOPE = "audience:server:client_id:" + clientID + ":api_scope:" + YouTubeScopes.YOUTUBE;
//        GoogleAccountCredential credential = GoogleAccountCredential.usingAudience(mContext, SCOPE);
//        credential.setSelectedAccountName(accountName);


        youtube = new YouTube.Builder(transport, jsonFactory, credential)
                .setApplicationName(clientName)
                .setYouTubeRequestInitializer(new YouTubeRequestInitializer(apiKey))
                /*.setGoogleClientRequestInitializer(new YouTubeRequestInitializer(apiKey))*/
                .build();
Run Code Online (Sandbox Code Playgroud)

然后创建一个事件:

LiveBroadcastSnippet broadcastSnippet = new LiveBroadcastSnippet();
        broadcastSnippet.setTitle(name);
        broadcastSnippet.setScheduledStartTime(new DateTime(futureDate));

        LiveBroadcastContentDetails contentDetails = new LiveBroadcastContentDetails();
        MonitorStreamInfo monitorStream = new MonitorStreamInfo();
        monitorStream.setEnableMonitorStream(false); …
Run Code Online (Sandbox Code Playgroud)

android android-youtube-api

14
推荐指数
2
解决办法
9943
查看次数