【问题标题】:Modify / Enhance YouTube tutorial to play video internally修改/增强 YouTube 教程以在内部播放视频
【发布时间】:2013-12-26 19:14:51
【问题描述】:

我发现了一个关于如何创建 youtube 视频列表视图的非常有用的教程:

http://blog.blundell-apps.com/show-youtube-user-videos-in-a-listview/

然后我按照另一个教程使列表视图中的视频可点击:

http://blog.blundell-apps.com/click-item-in-a-listview-to-show-youtube-video/

我的问题是我不想用 youtube 应用播放视频 - 我想在我的应用中播放它们 - 所以我创建了一个 youtube 播放器实例:

http://android-er.blogspot.com/2013/06/simple-example-using-youtube-android.html

我的问题是如何修改我当前的 onClick 侦听器以在我的 onClick 事件期间将视频的 ID 传递给我的应用程序的内部播放器而不是 youtube 应用程序?

onClick Listener (currently passing to standalone YouTube app):


    @Override
    public void onVideoClicked(Video video) {
        Intent intent = new Intent(Intent.ACTION_VIEW);
        intent.setData(Uri.parse(video.getUrl()));
        startActivity(intent);
    }

我的内部 Youtube 播放器:

public class MainActivity extends YouTubeBaseActivity implements
YouTubePlayer.OnInitializedListener{

 public static final String API_KEY = "AIzaSyCe6tORd9Ch4lx-9Ku5SQ476uS9OtZYsWA";
 public static final String VIDEO_ID = "o7VVHhK9zf0";

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

        YouTubePlayerView youTubePlayerView = (YouTubePlayerView)findViewById(R.id.youtubeplayerview);
        youTubePlayerView.initialize(API_KEY, this);
    }

 @Override
 public void onInitializationFailure(Provider provider,
   YouTubeInitializationResult result) {
  Toast.makeText(getApplicationContext(), 
    "onInitializationFailure()", 
    Toast.LENGTH_LONG).show();
 }

 @Override
 public void onInitializationSuccess(Provider provider, YouTubePlayer player,
   boolean wasRestored) {
  if (!wasRestored) {
        player.cueVideo(VIDEO_ID);
      }
 }

}

【问题讨论】:

    标签: java android android-intent youtube android-youtube-api


    【解决方案1】:

    类似:

    @Override
    public void onVideoClicked(Video video) {
        Intent intent = new Intent(this, MainActivity.class); // Your youtubeplayer activity
        intent.putExtra("video_id",video_id);
        startActivity(intent);
    }
    

    MainActivity onCreate() 中,您会获取 id 并将其传递给您的 Youtube 播放器:

    getIntent().getStringExtra("video_id");
    

    【讨论】:

    • 我试过了,但它似乎不起作用 - 所以我退后一步,恢复我的代码以完全匹配教程 - 但似乎我什至无法启动 Youtube 应用程序- 想看看吗? stackoverflow.com/questions/20476070/…
    猜你喜欢
    • 2012-09-25
    • 2019-10-24
    • 1970-01-01
    • 2014-05-01
    • 1970-01-01
    • 2012-12-13
    • 2013-10-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多