【问题标题】:How to play a video url from server in an iPhone app如何在 iPhone 应用程序中从服务器播放视频 url
【发布时间】:2012-06-24 17:43:44
【问题描述】:

实际上,我使用XMLParser 从服务器获取了一个url。我想在我的应用中播放此视频网址。
现在我使用了`MPMoviePlayerController,但它不起作用。请帮忙!

XMLParser.m

-(id) loadXMLByURL:(NSString *)urlString
{
videoNames      =[[NSMutableArray alloc]init];

videos          = [[NSMutableArray alloc] init];
NSURL *url      = [NSURL URLWithString:urlString];
NSData  *data   = [[NSData alloc] initWithContentsOfURL:url];
parser          = [[NSXMLParser alloc] initWithData:data];
parser.delegate = self;
[parser parse];
return self;
}

- (void) parser:(NSXMLParser *)parser didStartElement:(NSString *)elementname    namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName attributes:   (NSDictionary *)attributeDict
 {
 if ([elementname isEqualToString:@"items"]) 
{

}


 if ([elementname isEqualToString:@"video"]) 
 {
     NSLog(@"video");
 currentVideo = [Video alloc];
  }   
}


 - (void) parser:(NSXMLParser *)parser didEndElement:(NSString *)elementname 
 namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName
{

if ([elementname isEqualToString:@"video"]) 
{

   currentNodeContent2= [[currentNodeContent2 stringByReplacingOccurrencesOfString:@"+"    withString:@" "]
                               stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
[videos addObject:currentVideo];
currentVideo.content2 = currentNodeContent2;


}
   if ([elementname isEqualToString:@"name"]) 
{
     currentNodeContent2= [[currentNodeContent2 stringByReplacingOccurrencesOfString:@"+" withString:@" "]
                          stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
    [videoNames addObject:currentVideo];
    currentVideo.content2 = currentNodeContent2;
    NSLog(@"%@",currentNodeContent2);
   }
  }


// in my class.m

 -(void)playButtonPressed1:(UIButton*)sender
 {
  UIButton *btn1 = (UIButton *)sender;

Video *currentVideo= [[xmlParservideo videos] objectAtIndex:btn1.tag];
   NSString *urlString=currentVideo.content;

NSURL *playURL=[[NSURL alloc]initWithString:urlString];

self.player =[[MPMoviePlayerController alloc]initWithContentURL
              :playURL];
      player.view.frame = CGRectMake(0,80,340,360);
    [self.view addSubview:player.view];

self.player.movieSourceType = MPMovieSourceTypeUnknown;

[self.player prepareToPlay];

[self.player play];
 }

我的 xml

  <items>
    <item>
      <pastor> Master Jojimon</pastor>  
       <video>
       http3A2F2Fvideo.google.com2Fgoogleplayer.swfFdocidD-675885207870876013326hl%3Den 
      </video>
      <name>Message by Master Jojimon</name>
        <lan>english</lan>

【问题讨论】:

  • 你为什么不告诉我们什么是行不通的。显示一些代码。
  • 这是我的 xmlParser 代码和播放按钮的操作
  • 在你初始化之前 urlString 的 NSLog 会显示什么?
  • 对应当前视频内容(url)
  • 现在我发布我的 xml 并帮助我播放这个 url。我的邮件 ID islahulislam.ca@gmail.com

标签: objective-c ios ios5 ios4 nsxmlparser


【解决方案1】:

在该视频字符串不是有效网址之前,它无法正常工作。它指向一个不是视频的 swf flash 文件。而 B 只是在 Safari 中输入 url 将其显示为无效地址。

如果您要处理加载错误,我相信它会说它不是有效的 URL。

【讨论】:

  • youtube.com/embed/X_nJ7So9y04 这是有效的网址,这也不能在我的应用程序中播放
  • 那不是视频。那是一个 Flash 播放器的链接。当然,这也不会在您的应用程序中播放。您需要将视频转换为实际视频。 MP4 效果最好。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-04-25
  • 1970-01-01
  • 2011-11-16
  • 2012-04-05
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多