我正在尝试在我的应用中实现视频。我想我可以使用 YouTubePlayer API 并打开我的视频。如果我打开一个正常的新意图,这工作正常。
但是,如果我在应用程序底部有一个菜单的 childActivity 中打开 YouTubeVideoPlayer,它并没有真正起作用。
这就是我尝试打开 Intent 的方式:
Intent video = new Intent(getParent(), MyYouTubeVideoPlayer.class);
TabGroupActivity videoActivity = (TabGroupActivity)getParent();
videoActivity.startChildActivity("Video", video);
它工作正常,但播放器说:“初始化 YouTube 播放器时发生错误。
有谁知道如何在这个 ChildActivity 中将 YouTubePlayer 实现到我的应用中?或者还有其他更好的方法可以在我的应用中播放我的 YouTube 视频吗?
以下是 YouTubePlayer 类:
public class MyYouTubeVideoPlayer extends YouTubeFailureRecoveryActivity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.playerview_demo);
YouTubePlayerView youTubeView = (YouTubePlayerView) findViewById(R.id.youtube_view);
youTubeView.initialize(DeveloperKey.DEVELOPER_KEY, this);
}
public void onInitializationSuccess(YouTubePlayer.Provider provider, YouTubePlayer player,
boolean wasRestored) {
if (!wasRestored) {
player.cueVideo("wKJ9KzGQq0w");
}
}
@Override
protected YouTubePlayer.Provider getYouTubePlayerProvider() {
return (YouTubePlayerView) findViewById(R.id.youtube_view);
}
}
二等:
public abstract class YouTubeFailureRecoveryActivity extends
YouTubeBaseActivity implements YouTubePlayer.OnInitializedListener {
private static final int RECOVERY_DIALOG_REQUEST = 1;
public void onInitializationFailure(YouTubePlayer.Provider provider,
YouTubeInitializationResult errorReason) {
if (errorReason.isUserRecoverableError()) {
errorReason.getErrorDialog(this, RECOVERY_DIALOG_REQUEST).show();
} else {
String errorMessage = String.format(
getString(R.string.error_player), errorReason.toString());
Toast.makeText(this, errorMessage, Toast.LENGTH_LONG).show();
}
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == RECOVERY_DIALOG_REQUEST) {
// Retry initialization if user performed a recovery action
getYouTubePlayerProvider().initialize(DeveloperKey.DEVELOPER_KEY,
this);
}
}
protected abstract YouTubePlayer.Provider getYouTubePlayerProvider();
}