我可以使用JAVA获取Youtube内容。请帮我在Android中获取数据。
这是Java中的代码:
public class YouTubeTest
{
public static void main(String[] args)
{
try {
YouTubeService myService = new YouTubeService("mycompany-myapp-1");
String myFeed = "http://gdata.youtube.com/feeds/videos?start-index=1&max-results=25&q=earth";
printVideoFeed(myService, myFeed);
}
catch (IOException ex) {
Logger.getLogger(YouTubeTest.class.getName()).log(Level.SEVERE, null, ex);
}
catch (ServiceException ex) {
Logger.getLogger(YouTubeTest.class.getName()).log(Level.SEVERE, null, ex);
}
}
private static void printVideoFeed(YouTubeService service, String feedUrl) throws IOException, ServiceException {
VideoFeed videoFeed = service.getFeed(new URL(feedUrl), VideoFeed.class);
List<VideoEntry> allVideos = videoFeed.getEntries();
Iterator<VideoEntry> itAllVideos = allVideos.iterator();
while (itAllVideos.hasNext()){
VideoEntry oneVideo = itAllVideos.next();
TextConstruct oneVideoTitle = oneVideo.getTitle();
String oneVideoTitleText = oneVideoTitle.getPlainText();
//Print titles of all videos:
System.out.print(oneVideoTitleText);
List<Person> allAuthors = oneVideo.getAuthors();
Iterator<Person> itAllAuthors = allAuthors.iterator();
while (itAllAuthors.hasNext()){
Person oneAuthor = itAllAuthors.next();
//Print authors of current title:
System.out.print(" (by " + oneAuthor.getName() +")");
}
YtStatistics views= oneVideo.getStatistics();
System.out.print("\t "+views.getViewCount());
}
}
}
我包括了:
mail.jar
activation.jar
gdata-client-1.0.jar
gdata-client-meta-1.0.jar
gdata-core-1.0.jar
gdata-media-1.0.jar
gdata-youtube-1.0.jar
gdata-youtube-meta-1.0.jar
当我在android中尝试相同的代码时,它给出了异常:
FATAL EXCEPTION: main
java.lang.NoClassDefFoundError:com.google.gdata.client.youtube.YouTubeService
at com.example.youtry.YouTubeTest.abcd(YouTubeTest.java:32)
at com.example.youtry.MainActivity.onCreate(MainActivity.java:15)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1611)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1663)
at android.app.ActivityThread.access$1500(ActivityThread.java:117)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:931)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:123)
at android.app.ActivityThread.main(ActivityThread.java:3683)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:507)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
at dalvik.system.NativeStart.main(Native Method)
请帮帮我!!!
最佳答案
我的建议是您可以使用json Api获取所有类型的Youtub Vedioe,并且可以轻松地对其进行解析,并获取所需的详细信息。
喜欢包含vidieo类型
String [] MatchItem = {“ top_rated”,“ top_favorites”,“ most_viewed”,“ most_popular”,“ most_recent”};
//有用的网址
strUrlmy =“ http://gdata.youtube.com/feeds/api/standardfeeds/"+MatchItem[position]+”?
v = 2&alt = json“;