gpt4 book ai didi

iphone:如何使用 MPMoviePlayer 在应用程序中流式传输和播放 YouTube 视频?

转载 作者:行者123 更新时间:2023-12-03 19:15:58 27 4
gpt4 key购买 nike

我想制作一个像这样的YouTube应用程序(Youtube Stream)http://itunes.apple.com/us/app/youtube-stream/id384383425?mt=8#适用于 iPhone 的应用程序,其中一些视频是从 YouTube 流式传输/下载的,并在同一应用程序中播放,而无需启动 iPhone 的 YouTube 应用程序。我搜索了很多,但找不到关于如何做到这一点的线索..有人可以提出解决方案吗...

最佳答案

我找到了一种在 iPhone 应用程序内流式传输/播放 YouTube 视频的方法,但我不知道苹果会识别它或其根据 YouTube 条款和条件。下面我附上我的 .h 和 .m 文件,请检查并说明它是如何工作的..

YoutubePlayerViewController.h

#import<UIKit/UIKit.h>
#import<MediaPlayer/MediaPlayer.h>

@interface YoutubePlayerViewController : UIViewController
{
UITextField *yurl;
NSMutableData *responseData;
NSString *cacheLink;
MPMoviePlayerController *moviePlayer;

}

@property(nonatomic,retain)IBOutlet UITextField *yurl;
@property(nonatomic,retain)NSString *cacheLink;

-(IBAction)Play:(id)sender;
-(IBAction)removeKeyboard;
@end

enter image description here

//-------------------------------------------------------- -----------------------------------

//YoutubePlayerViewController.m

#import "YoutubePlayerViewController.h"

@implementation YoutubePlayerViewController
@synthesize yurl,cacheLink;


// Implement viewDidLoad to do additional setup after loading the view, typically from a nib.
- (void)viewDidLoad
{
[super viewDidLoad];
NSLog(@"view did load");
}


-(IBAction)removeKeyboard
{

[yurl resignFirstResponder];

}

-(IBAction)Play:(id)sender
{

//1.get the url
NSString *url=yurl.text;
//NSString *url=@"http://www.youtube.com/watch?v=t2o5MhaSWRs";
//2.show loding view

//3.make http request
responseData = [[NSMutableData data] retain];
NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL URLWithString:url]];
[[NSURLConnection alloc] initWithRequest:request delegate:self];





//3.parse jason string for itag=18
//5.create an NSURL with that string
//6.start the player with url

}



- (void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response
{
NSLog(@"did receving response");
[responseData setLength:0];
}

- (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data
{
//NSLog(@"receving data");
[responseData appendData:data];

}

- (void)connection:(NSURLConnection *)connection didFailWithError:(NSError *)error
{
NSLog(@"Connection failed: %@", [error description]);
}

- (void)connectionDidFinishLoading:(NSURLConnection *)connection
{
NSLog(@"%d",responseData.length);
NSString* strServerResponse= [[NSString alloc]initWithData:responseData encoding:NSASCIIStringEncoding];

NSLog(@"%@",strServerResponse);
NSLog(@"\n***********************************************\n");

NSArray *temp=[strServerResponse componentsSeparatedByString:@"swfConfig"];
strServerResponse=[temp objectAtIndex:1];

temp=[strServerResponse componentsSeparatedByString:@".c.youtube.com,18|"];
strServerResponse=[temp objectAtIndex:1];

temp=[strServerResponse componentsSeparatedByString:@"||"];
strServerResponse=[temp objectAtIndex:0];

strServerResponse=[strServerResponse stringByReplacingOccurrencesOfString:@"\\" withString:@""];
NSLog(@"%@",strServerResponse);
self.cacheLink=strServerResponse;


UIAlertView *alert=[[UIAlertView alloc] initWithTitle:@"link" message:self.cacheLink delegate:self cancelButtonTitle:@"ok" otherButtonTitles:nil];
[alert show];
[alert release];

NSURL *url=[[NSURL alloc] initWithString:self.cacheLink];
moviePlayer = [[MPMoviePlayerController alloc] initWithContentURL:url];
[self.view addSubview:moviePlayer.view];
moviePlayer.view.frame = CGRectMake(5,150,310,230);
moviePlayer.view.backgroundColor=[UIColor blackColor];
[moviePlayer play];

[connection release];
}


/*
// Override to allow orientations other than the default portrait orientation.
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
// Return YES for supported orientations
return (interfaceOrientation == UIInterfaceOrientationPortrait);
}
*/

- (void)didReceiveMemoryWarning {
// Releases the view if it doesn't have a superview.
[super didReceiveMemoryWarning];

// Release any cached data, images, etc that aren't in use.
}

- (void)viewDidUnload {
// Release any retained subviews of the main view.
// e.g. self.myOutlet = nil;
}


- (void)dealloc {
[super dealloc];
}

@end

关于iphone:如何使用 MPMoviePlayer 在应用程序中流式传输和播放 YouTube 视频?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4459975/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com