任何人帮助我,我没有使用MPMoviePlayerController
开玩笑,我在四个单元格中UItableView
进行攻击
#import "VSChannelListViewController.h"
#import "VSPlayerViewController.h"
@interface Channel : NSObject {
NSString *_name;
NSString *_urlAddress;
NSString *_description;
NSDictionary *_options;
}
@property (nonatomic, readonly) NSString *name;
@property (nonatomic, readonly) NSString *urlAddress;
@property (nonatomic, readonly) NSString *description;
@property (nonatomic, readonly) NSDictionary *options;
+ (id)channelWithName:(NSString *)name addr:(NSString *)addr description:(NSString *)description options:(NSDictionary *)options;
- (id)initWithName:(NSString *)name addr:(NSString *)addr description:(NSString *)description options:(NSDictionary *)options;
@end
@implementation Channel
@synthesize name = _name;
@synthesize urlAddress = _urlAddress;
@synthesize description = _description;
@synthesize options = _options;
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
if (self) {
// Custom initialization
self.title = @"Channel List";
_channelList = [[NSMutableArray array] retain];
Channel *c1 = [Channel channelWithName:@"TEST" addr:@"rtsp://202.65.154.103:1935/live/text.stream" description:@"justin reporter" options:[NSDictionary dictionaryWithObject:VSDECODER_OPT_VALUE_RTSP_TRANSPORT_TCP forKey:VSDECODER_OPT_KEY_RTSP_TRANSPORT]];
[_channelList addObject:c1];
Channel *c2 = [Channel channelWithName:@"Cartoon TV" addr:@"rtsp://ws2.gpom.com/cartoon" description:@"justin reporter Pavan" options:[NSDictionary dictionaryWithObject:VSDECODER_OPT_VALUE_RTSP_TRANSPORT_TCP forKey:VSDECODER_OPT_KEY_RTSP_TRANSPORT]];
[_channelList addObject:c2];
Channel *c3 = [Channel channelWithName:@"Sky-news" addr:@"rtsp://202.65.154.103:1935/live/text.stream" description:@"justin reporter Alapati" options:[NSDictionary dictionaryWithObject:VSDECODER_OPT_VALUE_RTSP_TRANSPORT_TCP forKey:VSDECODER_OPT_KEY_RTSP_TRANSPORT]];
[_channelList addObject:c3];
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(onVSPlayerStateChanged:) name:kVSPlayerStateChangedNotification object:nil];
}
return self;
;
}
然后使用tableView方法
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
return [_channelList count];
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
static NSString *cellId = @"CellIdentifier";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:cellId];
if (!cell) {
cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:cellId] autorelease];
UIView *topLine = [[[UIView alloc] initWithFrame:CGRectMake(0.0f, 0.0f, [UIScreen mainScreen].bounds.size.height, 1.0f)] autorelease];
topLine.backgroundColor = [UIColor colorWithRed:1.1 green:1.1 blue:1.11 alpha:0.5];
[cell.contentView addSubview:topLine];
UIView *bottomLine = [[[UIView alloc] initWithFrame:CGRectMake(0.0f, 63.0f, [UIScreen mainScreen].bounds.size.height, 1.0f)] autorelease];
bottomLine.backgroundColor =[UIColor colorWithRed:0.78 green:0.78 blue:0.79 alpha:0.5];
[cell.contentView addSubview:bottomLine];
cell.selectionStyle = UITableViewCellSelectionStyleGray;
cell.textLabel.font = [UIFont fontWithName:@"HelveticaNeue" size:18];
cell.detailTextLabel.font = [UIFont fontWithName:@"HelveticaNeue-Light" size:16];
}
Channel *channel = [_channelList objectAtIndex:indexPath.row];
cell.textLabel.text = [channel name];
cell.detailTextLabel.text = [channel description];
return cell;
}
- (void)tableView:(UITableView*)tableView willDisplayCell:(UITableViewCell*)cell forRowAtIndexPath:(NSIndexPath*)indexPath {
cell.backgroundColor = [UIColor colorWithRed:0.94 green:0.94 blue:0.95 alpha:1.0];
}
然后在
中使用didSelectRowAtIndexPath
-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
[tableView deselectRowAtIndexPath:indexPath animated:YES];
Channel *channel = [_channelList objectAtIndex:indexPath.row];
NSString *urlString = [channel urlAddress];
NSDictionary *options = [channel options];
VSPlayerViewController *playerVc = [[[VSPlayerViewController alloc] initWithURL:[NSURL URLWithString:[urlString stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]] decoderOptions:options] autorelease];
playerVc.barTitle = [channel name];
playerVc.statusBarHidden = YES;
#if __IPHONE_OS_VERSION_MAX_ALLOWED >= 60000
if ([[[UIDevice currentDevice] systemVersion] compare:@"6.0" options:NSNumericSearch] != NSOrderedAscending) {
//running on iOS 6.0 or higher
[self.navigationController presentViewController:playerVc animated:YES completion:NULL];
} else {
//running on iOS 5.x
#if __IPHONE_OS_VERSION_MIN_REQUIRED < 60000
[self.navigationController presentModalViewController:playerVc animated:YES];
#endif
}
#else
[self.navigationController presentModalViewController:playerVc animated:YES];
#endif
}
单击TableViewCell时,它会打开并使用RTSP协议播放视频肖像模式 但我的要求是当点击TableViewCell它打开并以横向模式播放视频而不使用移动旋转 请提出任何想法 先谢谢
答案 0 :(得分:0)
在VSPlayerViewController
班级,viewWillAppear/viewDidLoad
方法:
//rotate rect
self.view.transform = CGAffineTransformMakeRotation(M_PI_2);
希望这有帮助。