6
Proszę o cierpliwość, ponieważ jestem całkiem nowy na Androida. Próbuję zainicjować odtwarzacz Youtube w klasie fragmentów. Google już dostarczył sposób zainicjować w działalności, która wygląda następująco:Inicjowanie odtwarzacza YouTube w Fragmentach
package com.examples.youtubeapidemo;
import com.google.android.youtube.player.YouTubeBaseActivity;
import com.google.android.youtube.player.YouTubePlayer;
import com.google.android.youtube.player.YouTubePlayerView;
import android.os.Bundle;
public class PlayerViewDemoActivity 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);
}
@Override
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);
}
}
Próbowałem przy użyciu tego kodu, ale jej nie działa:
public class TabFragment5 extends YouTubePlayerFragment implements YouTubePlayer.OnInitializedListener {
/** (non-Javadoc)
* @see android.support.v4.app.Fragment#onCreateView(android.view.LayoutInflater, android.view.ViewGroup, android.os.Bundle)
*/
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
if (container == null) {
return null;
}
YouTubePlayerFragment yf = newInstance(); //new YouTubePlayerFragment();
yf.initialize("dsds", this);
return (LinearLayout)inflater.inflate(R.layout.tab_frag4_layout, container, false);
}
@Override
public void onInitializationFailure(Provider arg0,
YouTubeInitializationResult arg1) {
// TODO Auto-generated method stub
}
@Override
public void onInitializationSuccess(YouTubePlayer.Provider provider, YouTubePlayer player,
boolean wasRestored) {
if (!wasRestored) {
player.cueVideo("nCgQDjiotG0");
}
}
}
Byłbym bardzo wdzięczny, jeśli ktoś może zapewnić równoważne API dla fragment.
Dzięki
W przypadku, że fragment został zniszczony i uzyskać CV (np używając ustawienia Nie zachowuj aktywności), mój mPlayer nie jest już ważny. Inicjalizacja nie dociera już do OnInitilizationSuccess ... ponieważ Youtube może przywrócić swój własny stan. Jak mogę odzyskać mPlayer? – Elye
@ Elye: czy znalazłeś rozwiązanie swojego scenariusza? –
@ Elye wygląda na to, że youtube używa tego samego układu dla obu orientacji, więc żadnych zmian w onConfigurationChanged – user5599807