2016-11-16 2 views
3

Ich habe eine Aktivität genannt VideoActivity .Below die youtubeplayerview gibt es eine Liste von videos.On das erste Mal das Video loading.When i dann auf eine andere Tätigkeit gehen auf einem Element klicken und Wenn Sie dann zu dieser Aktivität zurückkehren, wird sie nicht abgespielt. Darf ich den Grund erfahren ? HierYoutube Spielervideo Laden nicht

ist der Code

public class VideoActivity extends YouTubeBaseActivity implements YouTubePlayer.OnInitializedListener { 

public Video video; 
private RecyclerView recyclerVideos; 
private static final int RECOVERY_DIALOG_REQUEST = 1; 
private YouTubePlayerView youTubeView; 


@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_video); 

    recyclerVideos = (RecyclerView) findViewById(R.id.recyclerVideos); 

    Intent i = getIntent(); 
    video = (Video) i.getSerializableExtra("video"); 

    LinearLayoutManager layoutManager = new LinearLayoutManager(this); 
    layoutManager.setOrientation(LinearLayoutManager.HORIZONTAL); 
    recyclerVideos.setLayoutManager(layoutManager); 

    new VideoAsyncTask().execute(); 

} 

@Override 
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 
public void onInitializationSuccess(YouTubePlayer.Provider provider, 
            YouTubePlayer player, boolean wasRestored) { 

    if (!wasRestored) { 
     player.cueVideo(video.Videoid); 
     player.setPlayerStyle(YouTubePlayer.PlayerStyle.DEFAULT); 
    } 
} 


@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(Constants.DEVELOPER_KEY, this); 
    } 
} 

private YouTubePlayer.Provider getYouTubePlayerProvider() { 
    return (YouTubePlayerView) findViewById(R.id.youtube_view); 
} 

private class VideoAsyncTask extends AsyncTask<Void, Void, Video> { 

    @Override 
    protected void onPreExecute() { 

    } 

    @Override 
    protected Video doInBackground(Void... params) { 

     try { 
     return webservice(); 

     } catch (Exception e1) { 
      e1.printStackTrace(); 
      return null; 
     } 
    } 

    protected void onPostExecute(final Video video) { 
     try { 
      if (video == null) { 
       return; 
      } 

      VideosAdapter videoAdapter = new VideosAdapter(video.videos,VideoActivity.this); 
      recyclerVideos.setAdapter(videoAdapter); 
    youTubeView.initialize(Constants.DEVELOPER_KEY, VideoActivity.this); 

     } catch (Throwable ignored) {} 
    } 
} 
} 

Antwort

1

Yes.I löste das Problem .

Schritt 1: die youtubeview hinzufügen

Schritt 2 zu Linearlayout: auf onResume die Ansicht entfernen und die youtubeview hinzuzufügen wieder Linearlayout bei Rückkehr zur Tätigkeit

Schritt 3: Stoppen Sie das Youtube-Video in Zurück drücken

+0

Könnten Sie bitte weitere Details zur Implementierung hinzufügen? Ich habe deinen Schritt versucht, aber es hat immer noch nicht funktioniert. Vielen Dank. –

+0

@DucLe: Hey Ich habe ein LinearLayout in XML erstellt und die YoutubeView zu LinearLayout hinzugefügt und dann initialisiert. Wenn ich wieder zu dieser Aktivität aus einer anderen Aktivität komme dann in OnResume habe ich die Ansicht entfernt und neu hinzufügen. – Debugger

0
@Override 
public void onResume(){ 
super.onResume(); 
try { 
     if (video == null) { 
      return; 
     } 

     YouTubePlayer.loadVideo(String videoId, int timeMillis); 

    } catch (Throwable ignored) {} 
} 
+0

Ich habe schon versucht, diese Methode.Aber das Video nicht geladen – Debugger

+0

überprüfen Update answe r – sasikumar

+0

Mein Freund es hat nicht funktioniert – Debugger

0

versuchen, die Aktivität Finishing, wenn Sie es verlassen, oder Initialisieren des youtubeplay auf Wiederaufnahme statt oncreate

@Override 
public void onResume(){ 
    super.onResume(); 
    new VideoAsyncTask().execute();} 
+0

Es funktioniert nicht – Debugger

Verwandte Themen