【问题标题】:Play a video with Twitter4j使用 Twitter4j 播放视频
【发布时间】:2016-02-13 11:33:26
【问题描述】:

我正在为 Android 构建一个应用程序来阅读 Twitter 提要我在播放推文中的视频时遇到了问题。目前我的推文提要显示拇指图像,当我点击它时,如果它是图像,我会显示图像,如果是视频,我希望能够播放它。

要加载图像,我正在做:

ImageLoader mImageLoader = new ImageLoader(mActivity);
mImageLoader.DisplayImage(mPicToShowUrl, tweet_pic) ;

mPicToShowUrl 来自:

mediaEntity.getMediaURL().toString();

mediaEntity 来自 Twitter4j Status.getExpandedURL

tweet_pic 只是一个 ImageView

URL 看起来像:example.com/xxx/status/89284924/video/1,它主要在任何播放器上都无法使用,因为它不包含类似 xxx.com/1.avi 的内容

这种 URL 和 ImageLoader 允许加载图像。我正在为视频寻找相同的方法

我认为推特视频更像是流媒体视频

知道如何在 ImageView 或任何其他视图中播放来自 Twitter 的视频吗?

谢谢

【问题讨论】:

    标签: android twitter twitter4j twitter-streaming-api


    【解决方案1】:

    您需要查看回复的extended_entities。你会看到类似

    "extended_entities": {
        "media": [
          {
            "id": 567972074346807300,
            "id_str": "567972074346807296",
            "indices": [
              46,
              68
            ],
            "media_url": "http://pbs.twimg.com/ext_tw_video_thumb/567972074346807296/pu/img/uz53Ap4wEah7cV50.jpg",
            "media_url_https": "https://pbs.twimg.com/ext_tw_video_thumb/567972074346807296/pu/img/uz53Ap4wEah7cV50.jpg",
            "url": "http://t.co/cGazAn7H3E",
            "display_url": "pic.twitter.com/cGazAn7H3E",
            "expanded_url": "http://twitter.com/katiemoffat/status/567972190639022080/video/1",
            "type": "video",
            "sizes": {
              "small": {
                "w": 340,
                "h": 340,
                "resize": "fit"
              },
              "thumb": {
                "w": 150,
                "h": 150,
                "resize": "crop"
              },
              "medium": {
                "w": 600,
                "h": 600,
                "resize": "fit"
              },
              "large": {
                "w": 720,
                "h": 720,
                "resize": "fit"
              }
            },
            "video_info": {
              "aspect_ratio": [
                1,
                1
              ],
              "duration_millis": 6605,
              "variants": [
                {
                  "bitrate": 832000,
                  "content_type": "video/mp4",
                  "url": "https://video.twimg.com/ext_tw_video/567972074346807296/pu/vid/480x480/eU1s1ig_skHgeRjB.mp4"
                },
                {
                  "content_type": "application/x-mpegURL",
                  "url": "https://video.twimg.com/ext_tw_video/567972074346807296/pu/pl/tr7sF7aHBPOCuL8H.m3u8"
                },
                {
                  "bitrate": 832000,
                  "content_type": "video/webm",
                  "url": "https://video.twimg.com/ext_tw_video/567972074346807296/pu/vid/480x480/eU1s1ig_skHgeRjB.webm"
                },
                {
                  "bitrate": 1280000,
                  "content_type": "video/mp4",
                  "url": "https://video.twimg.com/ext_tw_video/567972074346807296/pu/vid/720x720/njkDGgpJBpsTjQD3.mp4"
                },
                {
                  "bitrate": 320000,
                  "content_type": "video/mp4",
                  "url": "https://video.twimg.com/ext_tw_video/567972074346807296/pu/vid/240x240/Gye4gcWtlJq8zXhF.mp4"
                }
              ]
            }
          }
        ]
      },
    

    因此,您需要访问 extended_entities->media->video_info->variants 以查看所有可用的不同尺寸和格式的视频。

    您可以在不同大小的 MP4、WEBM 和流之间进行选择 - 取决于适合您正在播放的设备。

    (取自https://shkspr.mobi/blog/2015/02/working-with-the-twitter-videos-api/

    【讨论】:

    • 好的,但使用 getExtendedMediaEntities 或 getMediaEntities 或 getURLEntities 不会给我信息。来自 twitter4j 的状态只给了我这个信息。如何获得扩展实体?谢谢特伦斯
    • 你需要最新版的 twitter4j - twitter4j.org/javadoc/twitter4j/EntitySupport.html
    • 嗨@Seb你能弄清楚吗?你能帮我找到 twitter4j 的视频网址吗?
    猜你喜欢
    • 1970-01-01
    • 2013-03-05
    • 1970-01-01
    • 2014-04-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多