我已经实现了 Youtube API,一切都很好
但是当我升级时
compileSdkVersion 29
至
compileSdkVersion 30
和
targetSdkVersion 29
至
targetSdkVersion 30
它给了我 初始化 youtube 播放器时出错
我试图从 https://console.developers.google.com/ 更改我的 API key 但这没有意义 当我再次将 compileSdkVersion 和 targetSdkVersion 设置为 29 时,一切顺利
这是我的视频播放器页面代码:
package silver.yellow.yellowpamphletonline;
import android.os.Bundle;
import android.widget.Button;
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 VideoPlayer extends YouTubeBaseActivity {
YouTubePlayerView videoPlayer;
Button playButton;
YouTubePlayer.OnInitializedListener onInitializedListener;
boolean playing;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_video_player);
videoPlayer = findViewById(R.id.videoPlayer);
playButton = findViewById(R.id.play);
playing = false;
onInitializedListener = new YouTubePlayer.OnInitializedListener() {
@Override
public void onInitializationSuccess(YouTubePlayer.Provider provider, YouTubePlayer youTubePlayer, boolean b) {
playButton.setOnClickListener(v->{
if(playing){
youTubePlayer.pause();
playing = false;
playButton.setText("Play");
}
else {
youTubePlayer.play();
playing = true;
playButton.setText("Pause");
}
});
youTubePlayer.loadVideo("pr4OEPhwM3c");
playing = true;
playButton.setText("Pause");
youTubePlayer.setPlayerStyle(YouTubePlayer.PlayerStyle.CHROMELESS);
}
@Override
public void onInitializationFailure(YouTubePlayer.Provider provider, YouTubeInitializationResult youTubeInitializationResult) {
}
};
videoPlayer.initialize(VideoPlayerConfig.API_KEY,onInitializedListener);
}
}
最佳答案
Android Target SDK 版本 30 的问题是操作系统限制了对其他应用程序的访问。 https://developer.android.com/training/basics/intents/package-visibility
将以下内容添加到 AndroidManifest 中的 list 标记以修复 YouTube 问题:
<queries>
<intent>
<action android:name="com.google.android.youtube.api.service.START" />
</intent>
</queries>
以下是来自的答案: https://stackoverflow.com/a/65070537/14747641
感谢@Zahra Jamshidi
关于java - 将目标 sdk 升级到 30 时初始化 youtube 播放器时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63325493/