Unable to play youtube video in Android app

Hello to all,
I am trying to play a youtube video in my Android application by integrating youtube sdk and generating an api key from the google console after that, when I tried to launch the application while the application was starting. I get this error on my console, can anyone help me in solving this problem.

11-19 19:41:53.264 1173-1173/? E/ActivityThread: Service com.google.android.youtube.api.service.YouTubeService has leaked IntentReceiver lwz@427e4cf0 that was originally registered here. Are you missing a call to unregisterReceiver()? 11-19 19:41:53.264 1173-1173/? E/ActivityThread: android.app.IntentReceiverLeaked: Service com.google.android.youtube.api.service.YouTubeService has leaked IntentReceiver lwz@427e4cf0 that was originally registered here. Are you missing a call to unregisterReceiver()? 11-19 19:41:53.264 1173-1173/? E/ActivityThread: at android.app.LoadedApk$ReceiverDispatcher.<init>(LoadedApk.java:805) 11-19 19:41:53.264 1173-1173/? E/ActivityThread: at android.app.LoadedApk.getReceiverDispatcher(LoadedApk.java:606) 11-19 19:41:53.264 1173-1173/? E/ActivityThread: at android.app.ContextImpl.registerReceiverInternal(ContextImpl.java:1720) 11-19 19:41:53.264 1173-1173/? E/ActivityThread: at android.app.ContextImpl.registerReceiver(ContextImpl.java:1700) 11-19 19:41:53.264 1173-1173/? E/ActivityThread: at android.app.ContextImpl.registerReceiver(ContextImpl.java:1694) 11-19 19:41:53.264 1173-1173/? E/ActivityThread: at android.content.ContextWrapper.registerReceiver(ContextWrapper.java:453) 11-19 19:41:53.264 1173-1173/? E/ActivityThread: at lwz.a(SourceFile:1238) 11-19 19:41:53.264 1173-1173/? E/ActivityThread: at lwv.a(SourceFile:671) 11-19 19:41:53.264 1173-1173/? E/ActivityThread: at aha.a(SourceFile:267) 11-19 19:41:53.264 1173-1173/? E/ActivityThread: at aha.b(SourceFile:287) 11-19 19:41:53.264 1173-1173/? E/ActivityThread: at aps.run(SourceFile:209) 11-19 19:41:53.264 1173-1173/? E/ActivityThread: at android.os.Handler.handleCallback(Handler.java:730) 11-19 19:41:53.264 1173-1173/? E/ActivityThread: at android.os.Handler.dispatchMessage(Handler.java:92) 11-19 19:41:53.264 1173-1173/? E/ActivityThread: at android.os.Looper.loop(Looper.java:176) 11-19 19:41:53.264 1173-1173/? E/ActivityThread: at android.app.ActivityThread.main(ActivityThread.java:5419) 11-19 19:41:53.264 1173-1173/? E/ActivityThread: at java.lang.reflect.Method.invokeNative(Native Method) 11-19 19:41:53.264 1173-1173/? E/ActivityThread: at java.lang.reflect.Method.invoke(Method.java:525) 11-19 19:41:53.264 1173-1173/? E/ActivityThread: at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1046) 11-19 19:41:53.264 1173-1173/? E/ActivityThread: at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:862) 11-19 19:41:53.264 1173-1173/? E/ActivityThread: at dalvik.system.NativeStart.main(Native Method) Thanks in advance 
+1
source share
2 answers

as it appears, you must unregister your receiver

 @Override protected void onStop() { unregisterReceiver(yourReceiver); super.onStop(); } 
0
source

Although your answer has already been given.

Incase You still have problems with the code, you can use this full code (both java and xml).

YoutubeActivity.java

  public class YoutubeActivity extends YouTubeBaseActivity implements YouTubePlayer.OnInitializedListener { private static final int RECOVERY_REQUEST = 1; private YouTubePlayerView youTubeView; private YouTubePlayer youTubePlayer; public static final String YOUTUBE_API_KEY = "YOUR-API-KEY"; private String youtubeid; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_youtube); youTubeView = (YouTubePlayerView) findViewById(R.id.youtube_player); youTubeView.initialize(YOUTUBE_API_KEY, this); Bundle extras = getIntent().getExtras(); if (extras != null) { youtubeid = extras.getString("youtubeid"); } } @Override public void onInitializationSuccess(Provider provider, YouTubePlayer player, boolean wasRestored) { if (!wasRestored) { YouTubePlayer.PlayerStyle style = YouTubePlayer.PlayerStyle.DEFAULT; player.setPlayerStyle(style); player.setFullscreen(true); player.setShowFullscreenButton(false); //player.cueVideo("fhWaJi1Hsfo"); // Plays https://www.youtube.com/watch?v=fhWaJi1Hsfo player.cueVideo(youtubeid); //player.loadVideo(youtubeid); } } @Override public void onInitializationFailure(Provider provider, YouTubeInitializationResult errorReason) { if (errorReason.isUserRecoverableError()) { errorReason.getErrorDialog(this, RECOVERY_REQUEST).show(); } else { String error = String.format(getString(R.string.player_error), errorReason.toString()); Toast.makeText(this, error, Toast.LENGTH_LONG).show(); } } @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { if (requestCode == RECOVERY_REQUEST) { // Retry initialization if user performed a recovery action getYouTubePlayerProvider().initialize(YOUTUBE_API_KEY, this); } } protected Provider getYouTubePlayerProvider() { return youTubeView; } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.menu_main, menu); return true; } @Override public boolean onOptionsItemSelected(MenuItem item) { // Handle action bar item clicks here. The action bar will // automatically handle clicks on the Home/Up button, so long // as you specify a parent activity in AndroidManifest.xml. int id = item.getItemId(); //noinspection SimplifiableIfStatement if (id == R.id.action_settings) { return true; } return super.onOptionsItemSelected(item); } } 

activity_youtube.xml // your xml file layout

  <LinearLayout 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:orientation="vertical" android:background="#000000"> <com.google.android.youtube.player.YouTubePlayerView android:id="@+id/youtube_player" android:layout_width="match_parent" android:layout_height="wrap_content"/> </LinearLayout> 
0
source

Source: https://habr.com/ru/post/1244034/


All Articles