Я пытаюсь создать всплывающее окно, которое, как только оно откроется, будет воспроизводить видео Youtube с выбранным идентификатором видео. Вначале всплывающее окно было успешным, но сразу после того, как я вставил YoutubePlayerView в popwindow. xml и попытался запустить, экран затемняется. Два дня подряд я пробовал все возможные пути в Google, Stack Overflown, но теперь у меня не осталось идей, как это исправить.
Ниже приведен мой макет всплывающего окна xml файл - файл здесь может быть ошибка
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_gravity="center"
android:orientation="vertical"
android:padding="5dp"
android:visibility="visible"
tools:context="com.example.maalarm.finalalarm.MainActivity">
<view
android:id="@+id/youtube_player_view"
class="com.google.android.youtube.player.YouTubePlayerView"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#fff" />
</RelativeLayout>
Это мой поп-класс, который генерирует всплывающее окно
package com.example.maalarm.finalalarm;
import android.app.Activity;
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.util.DisplayMetrics;
import android.view.View;
import android.widget.Button;
public class Pop extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.popwindow);
DisplayMetrics dm = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(dm);
int width = dm.widthPixels;
int height = dm.heightPixels;
getWindow().setLayout((int) (width*.8), (int) (height*.6));
}
}
И ниже строка, которая имеет намерение к поп-классу, который у меня есть в другой класс
else if (choice == 5) {
startActivity(new Intent(RingtonePlayingService.this, Pop.class));
}
Наконец, класс, предназначенный для воспроизведения видео на YouTube - очень велика вероятность, что здесь что-то не так
package com.example.maalarm.finalalarm;
import android.os.Bundle;
import android.view.Window;
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.YouTubePlayerFragment;
import static android.provider.MediaStore.Video.Thumbnails.VIDEO_ID;
public class YoutubeDialogActivity extends YouTubeBaseActivity implements
YouTubePlayer.OnInitializedListener {
public static final String API_KEY = "AIzaSyAmSLPyRyzoHsHHXsqQYtUqFbdwjyXFuM0";
public static String VIDEO_ID ;
private YouTubePlayer youTubePlayer;
private YouTubePlayerFragment youTubePlayerFragment;
private static final int RQS_ErrorDialog = 1;
private MyPlayerStateChangeListener myPlayerStateChangeListener;
private MyPlaybackEventListener myPlaybackEventListener;
String log = "";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.popwindow);
Bundle bundle = getIntent().getExtras();
VIDEO_ID = bundle.getString("AcCfvmtIUAQ");
youTubePlayerFragment = (YouTubePlayerFragment) getFragmentManager()
.findFragmentById(R.id.open_video);
youTubePlayerFragment.initialize(API_KEY, this);
myPlayerStateChangeListener = new MyPlayerStateChangeListener();
myPlaybackEventListener = new MyPlaybackEventListener();
}
@Override
public void onInitializationSuccess(YouTubePlayer.Provider provider, YouTubePlayer player, boolean wasRestored) {
YouTubePlayer.PlayerStyle style = YouTubePlayer.PlayerStyle.MINIMAL;
player.setPlayerStyle(style);
youTubePlayer = player;
youTubePlayer.setPlayerStateChangeListener(myPlayerStateChangeListener);
youTubePlayer.setPlaybackEventListener((YouTubePlayer.PlaybackEventListener) myPlaybackEventListener);
if (!wasRestored) {
player.cueVideo(VIDEO_ID);
}
}
@Override
public void onInitializationFailure(YouTubePlayer.Provider provider, YouTubeInitializationResult result) {
if (result.isUserRecoverableError()) {
result.getErrorDialog(this, RQS_ErrorDialog).show();
}
}
private final class MyPlayerStateChangeListener implements
YouTubePlayer.PlayerStateChangeListener {
@Override
public void onAdStarted() {
}
@Override
public void onError(
com.google.android.youtube.player.YouTubePlayer.ErrorReason arg0) {
}
@Override
public void onLoaded(String arg0) {
}
@Override
public void onLoading() {
}
@Override
public void onVideoEnded() {
finish();
}
@Override
public void onVideoStarted() {
}
}
private class MyPlaybackEventListener {
}
}
Возможно, ошибка в xml файл, так как я пытался удалить вышеупомянутый класс (YoutubeDialogActivity) и запустить, но cra sh по-прежнему происходит. Не могли бы вы показать мне, как это исправить?
Кроме того, я не думаю, что здесь что-то не так, но ниже мой AndroidManifest. xml
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.maalarm.finalalarm">
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity
android:name=".MainActivity"
android:label="@string/app_name"
android:theme="@style/AppTheme.NoActionBar">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<receiver android:name=".Alarm_Receiver" />
<service android:name=".RingtonePlayingService"
android:enabled="true">
</service>
<activity
android:name=".Pop"
android:theme="@style/AppTheme.CustomTheme"
/>
</application>
</manifest>