기기의 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);
}
비디오를 재생할뿐만 아니라 해당 프레임의 중간 프레임 또는 다른 프레임을 추출해야합니다. 프레임이란 비디오 흐름을 구성하는 구성 이미지를 의미합니다. 비디오가 재생되는 동안 특정 시간에 표시되는 이미지를 캡처 할 방법이 필요합니다. – luvieere
k .. 이걸 시도해 봤어 .. [MediaMetadataRetriever.getFrameAtTime()] (http://developer.android.com/reference/android/media/MediaMetadataRetriever.html#getFrameAtTime%28long,%20int%29) – Sush