【发布时间】:2021-01-02 16:17:15
【问题描述】:
我尝试了这个 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 onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
youtubePlayerView = findViewById(R.id.youtubeView);
play_btn = findViewById(R.id.playvideo_btn);
final android.app.Activity myActivity = this;
onInitializedListener =new YouTubePlayer.OnInitializedListener() {
@Override
public void onInitializationSuccess(YouTubePlayer.Provider provider, YouTubePlayer youTubePlayer, boolean b) {
youTubePlayer.loadVideo("Up9BjrIuoXY");
}
@Override
public void onInitializationFailure(YouTubePlayer.Provider provider, YouTubeInitializationResult youTubeInitializationResult) {
if (youTubeInitializationResult.isUserRecoverableError()) {
youTubeInitializationResult.getErrorDialog(myActivity, RECOVERY_DIALOG_REQUEST).show();
} else {
String errorMessage = String.format(
getString(R.string.error_player), youTubeInitializationResult.toString());
Toast.makeText(myActivity, errorMessage, Toast.LENGTH_LONG).show();
}
}
};
play_btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
youtubePlayerView.initialize("AIzaSyZ2", onInitializedListener);
}
});
}
}
Android 11 设备的 YouTube 应用已更新。
希望有人可以帮助我。谢谢!
【问题讨论】:
-
你搜索过这个问题吗? - 检查this answer 或this one。这些是search results on Google - 如果您能获得有关您遇到的错误的更多详细信息,这将有所帮助。按edit,在您的问题中添加错误详细信息。
-
我在发帖之前尝试了这些解决方案,但没有成功 Mauricio Arias Olave。但无论如何感谢,我们决定使用 UniWebView,因为 iOS 对这个库的支持几乎为零。我们的项目面向 iOS 和 Android,Google 很久以来就没有更新过他们的 YouTube API。它使用 Apple 拒绝从他们的商店中获得的 UIWebView。
-
Misael L. 我很高兴你找到了替代方案。请使用您提供的详细信息为您自己的问题添加答案 - 由于 cmet 是暂时的,并且会在没有通知的情况下被删除 - 然后,对于遇到与您相同的问题的任何人,您的解决方案都将丢失。请参阅Can I answer my own question?。谢谢。
标签: android youtube android-youtube-api android-11