当我处于暂停状态时,Youtube API 崩溃。 当我播放 Youtube 视频 onclick 时它工作正常但是当我在 onpause 状态下最小化我的应用程序时它崩溃了。所以给我一些建议。我以前从未使用过 Youtube API,所以我对此一无所知。请检查我的代码是否良好。如果没有,那么请提供良好的 建议也。提前致谢。
package com.app.embedyoutube;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
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 {
String key="AIzaSyASLaX32-EG2Rx0EWZFPbwhuBDgsBgC6e0";
YouTubePlayer youTubePlayer1;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
final YouTubePlayerView youtubePlayerView = findViewById(R.id.youtubePlayerView);
youtubePlayerView.initialize(key,this);
findViewById(R.id.b1).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
play("ScQrLSBAuQk");
}
});
findViewById(R.id.b2).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
play("Ow9-fzf4Qbk");
}
});
}
@Override
public void onInitializationSuccess(YouTubePlayer.Provider provider, YouTubePlayer youTubePlayer, boolean b) {
youTubePlayer1=youTubePlayer;
youTubePlayer1.cueVideo("Ow9-fzf4Qbk");
youTubePlayer1.setPlayerStateChangeListener(new YouTubePlayer.PlayerStateChangeListener() {
@Override public void onAdStarted() { }
@Override public void onError(YouTubePlayer.ErrorReason arg0) { }
@Override public void onLoaded(String arg0) { }
@Override public void onLoading() { }
@Override public void onVideoEnded() { }
@Override public void onVideoStarted() { }
});
youTubePlayer1.setPlaybackEventListener(new YouTubePlayer.PlaybackEventListener() {
@Override public void onBuffering(boolean arg0) { }
@Override public void onPaused() { }
@Override public void onPlaying() { }
@Override public void onSeekTo(int arg0) { }
@Override public void onStopped() { }
});
}
@Override
public void onInitializationFailure(YouTubePlayer.Provider provider, YouTubeInitializationResult youTubeInitializationResult) {
}
public void play(String url)
{
if( youTubePlayer1 != null ) {
youTubePlayer1.cueVideo(url);
}
}
@Override
public void onPause()
{
super.onPause();
if (youTubePlayer1 != null) {
if(youTubePlayer1.isPlaying()) {
// currentPlayerTime = youTubePlayer1.getCurrentTimeMillis();
youTubePlayer1.pause();
}
}
}
}
最佳答案
@Override
public void onPause()
{
super.onPause();
if (youTubePlayer1 != null) {
youTubePlayer1.release();
}
}
并且你可以在savedInstanceState
中保存你当前的视频时间
但为了更好的解决方案,我建议您在 onResume
中初始化您的播放器并在 onStop
中释放它,就像这样。
@Override
protected void onResume() {
super.onResume();
playerView.initialize(KEY, this);
}
@Override
public void onStop() {
if (player != null) {
player.release();
}
player = null;
super.onStop();
}
关于java - Youtube API 在暂停时崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47406157/