2013-09-11 3 views
1

Я следую за этот учебник, чтобы создать собственный проигрыватель YouTube с помощью YouTube API: http://www.techrepublic.com/blog/android-app-builder/using-googles-youtube-api-in-your-android-apps/игрок доступа API Android YouTube из onClickListener

Вот код для загрузки предустановленного YouTube видео:

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.YouTubePlayerView; 
import com.google.android.youtube.player.YouTubePlayer.Provider; 

import android.os.Bundle; 
import android.widget.Toast; 

public class MainActivity extends YouTubeBaseActivity implements YouTubePlayer.OnInitializedListener { 

    static private final String DEVELOPER_KEY = "mykey"; 
    static private final String VIDEO = "Yc8YrVc47TI"; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
     YouTubePlayerView youTubeView = (YouTubePlayerView) findViewById(R.id.youtube_view); 
     youTubeView.initialize(DEVELOPER_KEY, this); 
    } 

    @Override 
    public void onInitializationFailure(Provider provider, YouTubeInitializationResult error) { 
     Toast.makeText(this, "Oh no! "+error.toString(), Toast.LENGTH_LONG).show(); 
    } 

    @Override 
    public void onInitializationSuccess(Provider provider, YouTubePlayer player, boolean wasRestored) { 
     player.loadVideo(VIDEO); 
    } 


} 

Теперь я пытаюсь загрузить другое видео YouTube, нажав кнопку. Поэтому я устанавливаю onClickListener для своего button1 и пытаюсь получить доступ к проигрывателю YouTube, но это не сработает.

public class MainActivity extends YouTubeBaseActivity implements YouTubePlayer.OnInitializedListener { 

    static private final String DEVELOPER_KEY = "mykey"; 
    static private final String VIDEO = "Yc8YrVc47TI"; 
    Button button1; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
     YouTubePlayerView youTubeView = (YouTubePlayerView) findViewById(R.id.youtube_view); 
     youTubeView.initialize(DEVELOPER_KEY, this); 

     button1 = (Button) findViewById(R.id.button1); 
     button1.setOnClickListener(new OnClickListener() { 
        public void onClick(View v) { 

         youTubeView.loadVideo("Erd2k6EKxCQ"); 

        } 
     }); 
    } 

    @Override 
    public void onInitializationFailure(Provider provider, YouTubeInitializationResult error) { 
     Toast.makeText(this, "Oh no! "+error.toString(), Toast.LENGTH_LONG).show(); 
    } 

    @Override 
    public void onInitializationSuccess(Provider provider, YouTubePlayer player, boolean wasRestored) { 
     player.loadVideo(VIDEO); 
    } 


} 

Как загрузить конкретное видео с onClickListener BUTTON1 к player.component в YouTubePlayer?

ответ

0

Чтобы расширить контекст YouTubePlayerView, вам необходимо создать новое действие. Это то, на что похожа моя деятельность, но вам нужно создать намерение из main, чтобы вызвать ее. IE это другой класс, чем основной.

public class Beat extends YouTubeBaseActivity implements 
YouTubePlayer.OnInitializedListener, OnClickListener{ 
    static private final String DEVELOPER_KEY = "your key here"; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.beat); 
     // changes to xml file named beat 


     // initializes the video 

     YouTubePlayerView yt2 = (YouTubePlayerView)findViewById(R.id.youtube_view2); 
     yt2.initialize(DEVELOPER_KEY, this); 

     setupActionBar(); 
    } 
    public void onInitializationSuccess(Provider provider, YouTubePlayer player, 
      boolean wasRestored) { 
          player.loadVideo(Main.VIDEO[0]); 
        } 
+0

я решил мою проблему. Я уже сделал то, что вы сказали, так что не так. Проблема заключалась в том, что я определил представление выше моей основной функции - таким образом, главное даже не началось. – Kelsey

0
public class Community extends YouTubeBaseActivity implements YouTubePlayer.OnInitializedListener,View.OnClickListener{ 

    final static String youtube_key = " you key "; 
    YouTubePlayerView youTubePlayerView; 
    YouTubePlayer.OnInitializedListener onInitializedListener; 
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_community); 

     youTubePlayerView = (YouTubePlayerView) findViewById(R.id.home_community_youtubeview); 

     youTubePlayerView.initialize(youtube_key,this); 


    } 

    @Override 
    public void onInitializationSuccess(YouTubePlayer.Provider provider, YouTubePlayer youTubePlayer, boolean b) { 
     youTubePlayer.loadVideo("vk1Rk5AaDO4"); 
    } 

    @Override 
    public void onInitializationFailure(YouTubePlayer.Provider provider, YouTubeInitializationResult youTubeInitializationResult) { 

    } 

    @Override 
    public void onClick(View view) { 

    } 
} 
Смежные вопросы