使用Youtube的Livestreaming API直播到其他人的频道

时间:2017-06-20 07:07:57

标签: youtube-api youtube-data-api android-youtube-api youtube-livestreaming-api

我尝试使用youtube的watchme应用​​程序进行实时流式处理,并且我公平地理解了代码。在我的用例中,用户需要能够直播到另一个频道。我知道这里需要Stream密钥,但我需要粗略指导我需要在代码中更改的位置。任何暗示或粗略的想法都会做。我只需要开始。

1 个答案:

答案 0 :(得分:0)

如果您使用的是Youtube WatchMe app for Android,则会在您的Youtube帐户上创建直播活动。如果您希望用户从另一个Youtube帐户发布的实时流中键入流密钥,则必须创建类似于startStreaming方法的功能:

public void startStreaming(EventData event) {

    //the event is already started on your external live stream
    //String broadcastId = event.getId();
    //new StartEventTask().execute(broadcastId);

    Intent intent = new Intent(getApplicationContext(),
            StreamerActivity.class);
    intent.putExtra(YouTubeApi.RTMP_URL_KEY, event.getIngestionAddress());

    // we don't need this since it's only used to end the live event
    intent.putExtra(YouTubeApi.BROADCAST_ID_KEY, "");

    startActivityForResult(intent, REQUEST_STREAMER);
}

请注意,广播ID会发送到StreamerActivity,以便能够完成您使用外部直播流无法完成的事件(endEvent)。

event.getIngestionAddress()是Stream Key网址,例如:

rtmp://a.rtmp.youtube.com/live2/<Stream key>

因此,您可以创建如下方法:

public void startStreaming(String streamKey) {

    String url = "rtmp://a.rtmp.youtube.com/live2/" + streamKey;

    Intent intent = new Intent(getApplicationContext(), StreamerActivity.class);
    intent.putExtra(YouTubeApi.RTMP_URL_KEY, url);
    intent.putExtra(YouTubeApi.BROADCAST_ID_KEY, "");

    startActivityForResult(intent, REQUEST_STREAMER);
}