java - 修改/增强 YouTube 教程以在内部播放视频

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

我发现了一个关于如何创建 YouTube 视频 ListView 的非常有用的教程:

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

然后我按照另一个教程使 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);
      }
 }

}

最佳答案

类似于:

@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");

关于java - 修改/增强 YouTube 教程以在内部播放视频,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20474683/

相关文章:

java - 从类对象的方法接收空指针异常

java - 如何修复 "We found a problem with some content in ' abc.xlsm'。您希望我们尽力恢复吗?

java - Spring - Hibernate JPA 配置中的问题设置方言

java - 如何提高 Javafx Canvas 上线条的绘制速度

java - 检测动画何时结束 (Android studio)

Android客户端使用SFTP发送文件

java.net.SocketPermission : "connect.resolve"

java - 如何将 expandablelistview 的默认扩展限制设置为 4?

java - Android线程获取参数

java - 如何停止在 CollapsingToolbarLayout 上滚动,使其不会完全折叠