1.加入GDataXMLNode
2.加入libxml2
3.更改GDataXMLNode的ARC格式爲-fno-objc-arc
4.在Header Search中加入
//
// KevinTableViewController.m
// 03-我的播放器
//
// Created by Kevin1 on 15/3/22.
// Copyright (c) 2015年 shile. All rights reserved.
//
#import "KevinTableViewController.h"
#import "MBProgressHUD+MJ.h"
#import "KevinVideo.h"
#import "UIImageView+WebCache.h"
#import <MediaPlayer/MediaPlayer.h>
#import "GDataXMLNode.h"
#define KVUrl(path) [NSURL URLWithString:[NSString stringWithFormat:@"http://192.168.1.100:8080/MJServer/%@",path]];
@interface KevinTableViewController ()
@property(nonatomic,strong)NSMutableArray *videos;
@end
@implementation KevinTableViewController
-(NSMutableArray *)videos
{
if (!_videos) {
self.videos=[[NSMutableArray alloc]init];
}
return _videos;
}
- (void)viewDidLoad
{
[super viewDidLoad];
//創建URL
// NSURL *url=[NSURL URLWithString:@"http://192.168.1.100:8080/MJServer/video"];
NSURL *url=KVUrl(@"video?type=XML");
//創建請求
NSURLRequest *request=[NSURLRequest requestWithURL:url];
//發送請求
[NSURLConnection sendAsynchronousRequest:request queue:[NSOperationQueue mainQueue] completionHandler:^(NSURLResponse *response ,NSData *data,NSError *connerctionError)
{
if (connerctionError||data==nil) {
[MBProgressHUD showError:@"網絡繁忙,請稍後再試!"];
return ;
}
//xml解析
//加載整個XML數據
GDataXMLDocument *doc=[[GDataXMLDocument alloc]initWithData:data options:0 error:nil];
//獲得文檔的根節點
GDataXMLElement *root=doc.rootElement;
//獲得獲得根元素裏的video元素
NSArray *elements=[root elementsForName:@"video"];
//遍歷video元素
for (GDataXMLElement *videoElement in elements) {
KevinVideo *video=[[KevinVideo alloc]init];
video.id=[videoElement attributeForName:@"id"].stringValue.intValue;
video.name=[videoElement attributeForName:@"name"].stringValue;
video.length=[videoElement attributeForName:@"length"].stringValue.intValue;
video.image=[videoElement attributeForName:@"image"].stringValue;
video.url=[videoElement attributeForName:@"url"].stringValue;
[self.videos addObject:video];
}
[self.tableView reloadData];
}];
//創建URL
}
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
return self.videos.count;
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *ID=@"video";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:ID ];
if (!cell) {
cell=[[UITableViewCell alloc]initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:ID];
}
KevinVideo *video=self.videos[indexPath.row];
//顯示視頻名稱
cell.textLabel.text=video.name;
//顯示視頻時長
cell.detailTextLabel.text=[NSString stringWithFormat:@"時長:%d分鐘",video.length];
//顯示視頻截圖
// NSString *imageurl=[NSString stringWithFormat:@"http://192.168.1.100:8080/MJServer/%@",video.image];
//
// NSURL *url=[NSURL URLWithString:imageurl];
NSURL *url=KVUrl(video.image);
[cell.imageView sd_setImageWithURL:url placeholderImage:[UIImage imageNamed:@"Default"]];
return cell;
}
-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
KevinVideo *video=self.videos[indexPath.row];
// NSString *videourl=[NSString stringWithFormat:@"http://192.168.1.100:8080/MJServer/%@",video.url];
// NSURL *url=[NSURL URLWithString:videourl];
NSURL *url=KVUrl(video.url);
MPMoviePlayerViewController *playerVc=[[MPMoviePlayerViewController alloc]initWithContentURL:url];
[self presentViewController:playerVc animated:YES completion:nil];
}
@end