【发布时间】:2014-06-11 17:07:18
【问题描述】:
我是 Android 编程新手!我想知道是否可以创建一种弹出视图(例如类似于警报对话框),您可以在其中播放 YouTube 视频! 我试过但我失败了!
你能帮帮我吗?我知道如何在不同的活动上播放 YouTube 视频,但我不知道如何做同样的事情,而是在一种警报对话框中!
谢谢大家!
M
这是我的代码:
b1.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View v) {
//Intent i = new Intent(PaginaRisultati.this, YTActivity.class);
final Dialog dialog = new Dialog(PaginaRisultati.this);
dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
dialog.setContentView(R.layout.playerview_demo);
YouTubePlayerView youTubeView = (YouTubePlayerView) dialog.findViewById(R.id.youtube_view);
OnInitializedListener oil = new YouTubePlayer.OnInitializedListener() {
@Override
public void onInitializationSuccess(Provider provider, YouTubePlayer player,
boolean wasRestored) {
if (!wasRestored) {
player.cueVideo("lHtJPFLgizw");
}
}
@Override
public void onInitializationFailure(Provider provider,
YouTubeInitializationResult errorReason) {
if (errorReason.isUserRecoverableError()) {
errorReason.getErrorDialog(PaginaRisultati.this, RECOVERY_DIALOG_REQUEST).show();
} else {
String errorMessage = String.format("ERROR!!", errorReason.toString());
Toast.makeText(PaginaRisultati.this, errorMessage, Toast.LENGTH_LONG).show();
}
}
};
youTubeView.initialize("MY_APY_KEY", oil);
dialog.show();
}
});
对话框的XML文件:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical">
<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="TextView" />
<com.google.android.youtube.player.YouTubePlayerView
android:id="@+id/youtube_view"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
</LinearLayout>
这是 LogCat 中的错误:
06-11 16:57:10.225: E/AndroidRuntime(1872): FATAL EXCEPTION: main
06-11 16:57:10.225: E/AndroidRuntime(1872): Process: it.sii.android.jobaroundu, PID: 1872
06-11 16:57:10.225: E/AndroidRuntime(1872): android.view.InflateException: Binary XML file line #28: Error inflating class com.google.android.youtube.player.YouTubePlayerView
06-11 16:57:10.225: E/AndroidRuntime(1872): at android.view.LayoutInflater.createView(LayoutInflater.java:620)
06-11 16:57:10.225: E/AndroidRuntime(1872): at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:696)
06-11 16:57:10.225: E/AndroidRuntime(1872): at android.view.LayoutInflater.rInflate(LayoutInflater.java:755)
06-11 16:57:10.225: E/AndroidRuntime(1872): at android.view.LayoutInflater.inflate(LayoutInflater.java:492)
06-11 16:57:10.225: E/AndroidRuntime(1872): at android.view.LayoutInflater.inflate(LayoutInflater.java:397)
06-11 16:57:10.225: E/AndroidRuntime(1872): at android.view.LayoutInflater.inflate(LayoutInflater.java:353)
06-11 16:57:10.225: E/AndroidRuntime(1872): at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:290)
06-11 16:57:10.225: E/AndroidRuntime(1872): at android.app.Dialog.setContentView(Dialog.java:477)
06-11 16:57:10.225: E/AndroidRuntime(1872): at it.sii.android.jobaroundu.PaginaRisultati$MyExpandableListAdapter$3.onClick(PaginaRisultati.java:287)
06-11 16:57:10.225: E/AndroidRuntime(1872): at android.view.View.performClick(View.java:4438)
06-11 16:57:10.225: E/AndroidRuntime(1872): at android.view.View$PerformClick.run(View.java:18422)
06-11 16:57:10.225: E/AndroidRuntime(1872): at android.os.Handler.handleCallback(Handler.java:733)
06-11 16:57:10.225: E/AndroidRuntime(1872): at android.os.Handler.dispatchMessage(Handler.java:95)
06-11 16:57:10.225: E/AndroidRuntime(1872): at android.os.Looper.loop(Looper.java:136)
06-11 16:57:10.225: E/AndroidRuntime(1872): at android.app.ActivityThread.main(ActivityThread.java:5017)
06-11 16:57:10.225: E/AndroidRuntime(1872): at java.lang.reflect.Method.invokeNative(Native Method)
06-11 16:57:10.225: E/AndroidRuntime(1872): at java.lang.reflect.Method.invoke(Method.java:515)
06-11 16:57:10.225: E/AndroidRuntime(1872): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:779)
06-11 16:57:10.225: E/AndroidRuntime(1872): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:595)
06-11 16:57:10.225: E/AndroidRuntime(1872): at dalvik.system.NativeStart.main(Native Method)
06-11 16:57:10.225: E/AndroidRuntime(1872): Caused by: java.lang.reflect.InvocationTargetException
06-11 16:57:10.225: E/AndroidRuntime(1872): at java.lang.reflect.Constructor.constructNative(Native Method)
06-11 16:57:10.225: E/AndroidRuntime(1872): at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
06-11 16:57:10.225: E/AndroidRuntime(1872): at android.view.LayoutInflater.createView(LayoutInflater.java:594)
06-11 16:57:10.225: E/AndroidRuntime(1872): ... 19 more
06-11 16:57:10.225: E/AndroidRuntime(1872): Caused by: java.lang.IllegalStateException: A YouTubePlayerView can only be created with an Activity which extends YouTubeBaseActivity as its context.
06-11 16:57:10.225: E/AndroidRuntime(1872): at com.google.android.youtube.player.YouTubePlayerView.<init>(Unknown Source)
06-11 16:57:10.225: E/AndroidRuntime(1872): at com.google.android.youtube.player.YouTubePlayerView.<init>(Unknown Source)
06-11 16:57:10.225: E/AndroidRuntime(1872): ... 22 more
【问题讨论】:
标签: android youtube youtube-api android-alertdialog android-youtube-api