3

私はvideoviewを使用して次のYouTubeビデオを表示しています

http://www.youtube.com/watch?v=FovFG3N_RSU

黒い画面は見たくないが、ビデオのカバーとしてビデオのミッドフレームを表示したい。

IOSには、

https://developer.apple.com/library/mac/#documentation/AVFoundation/Reference/AVAssetImageGenerator_Class/Reference/Reference.htmlこれは役立ちます。

Androidで達成する方法は?

4

1 に答える 1

4

これは、デバイスのAndroidバージョンとフラッシュサポート機能によって異なります。デバイスにフラッシュがインストールされていない限り、VideoView setVideoUriメソッドを使用してビデオを再生することはできません(httpリンクをuriとして解析した後)。

この以下のコードは私のために働いていますが、これはあなたのチューブへの一種のハックです。
フラッシュがインストールされていないデバイスには、このコードを使用してください。

 public Uri getYoutubeUriForVideoId()
 {
        String YOUTUBE_VIDEO_INFORMATION_URL = "http://m.youtube.com/watch?ajax=1&layout=mobile&tsp=1&utcoffset=330&v="; 

        String USER_AGENT ="Mozilla/5.0 (Linux; U; Android 2.2.1; en-gb; GT-I9003 Build/FROYO) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1";

        HttpClient lClient = new DefaultHttpClient();
        HttpGet lGetMethod = new HttpGet(YOUTUBE_VIDEO_INFORMATION_URL + videoId);
        // setting the header as to get the high quality video url 
        lGetMethod.setHeader("User-Agent",UrlConstants.USER_AGENT);
        HttpResponse lResp = lClient.execute(lGetMethod);

        if(lResp == null)
            return null;
        String lInfoStr = EntityUtils.toString(lResp.getEntity(), "UTF-8");

        JSONObject videoInfoJson = new JSONObject(lInfoStr.substring(4,lInfoStr.length()));
        JSONObject content = (JSONObject) videoInfoJson.get("content");
        JSONObject video = (JSONObject) content.get("video");
        JSONArray fmt_stream_map = video.getJSONArray("fmt_stream_map"); 
        String url = fmt_stream_map.getJSONObject(0).getString("url");

        return Uri.parse(url); 
}
于 2013-03-29T07:37:43.923 に答える