【问题标题】:iPhone Live Video Stream Media PlayeriPhone 直播视频流媒体播放器
【发布时间】:2010-02-03 13:34:52
【问题描述】:

我希望制作一个流式传输实时视频的应用,该应用在顶部放置一个带有标签的视图和一个按钮。

根据我对 http 视频流功能(自 iPhone 3.0 操作系统起可用)的研究和测试,您似乎创建了一个指向包含转换后的视频流的索引 html 的 web 视图,并且这显示为一个 quicktime 视频应用程序。这意味着我无法控制打开的媒体播放器。有谁知道如何控制它?

我知道 Apple 的 MoviePlayer 示例代码向您展示了如何在 MediaPlayer 视频上放置视图,但是如何使用 http 直播流来完成呢?

提前致谢。

【问题讨论】:

    标签: iphone iphone-sdk-3.0 video-streaming media-player live-video


    【解决方案1】:

    我现在只是在电影播放器​​视频顶部显示视图/标签/按钮时遇到问题。在 Apple 的 MoviePlayer 示例项目中,您可以使用以下代码在视频顶部添加视图:

    MoviePlayerAppDelegate *appDelegate = (MoviePlayerAppDelegate *)[[UIApplication sharedApplication] delegate];     
    
    // initialize a new MPMoviePlayerController object with the specified URL, and play the movie
    [appDelegate initAndPlayMovie:[self localMovieURL]];
    
    NSArray *windows = [[UIApplication sharedApplication] windows];
    
    if ([windows count] > 1) {
         // Locate the movie player window
         UIWindow *moviePlayerWindow = [[UIApplication sharedApplication] keyWindow];
    
         // Add our overlay view to the movie player's subviews so it is displayed above it.
         [moviePlayerWindow addSubview:self.overlayView];
    }
    

    overlayview 是一个包含请求的标签和按钮的视图。但是,当我将相同的代码应用于包含 .m3u8 文件的电影 url 时,它不会显示覆盖视图,例如http://devimages.apple.com/iphone/samples/bipbop/gear1/prog_index.m3u8

    NSURL *newMovieURL = [NSURL URLWithString:@"http://devimages.apple.com/iphone/samples/bipbop/gear1/prog_index.m3u8">];
    
    if (movieURL) {
         NSLog(@"movieURL");
    
         if ([movieURL scheme])     // sanity check on the URL
         { NSLog(@"[movieURL scheme]");
              [appDelegate initAndPlayMovie:newMovieURL];
    
              NSArray *windows = [[UIApplication sharedApplication] windows];
              NSLog(@"windows count:%d", [windows count]);
    
           if ([windows count] > 1) {
              UIWindow *moviePlayerWindow = [[UIApplication sharedApplication] keyWindow];
              [moviePlayerWindow addSubview:self.overlayView];
              }
         }
         else NSLog(@"![movieURL scheme]"); } else
         NSLog(@"!movieURL");
    

    返回的窗口数仅为 1,而不是前面示例中的 2,即使电影播放也是如此。当我检查 url 是否正常时,movieURL 返回 null,但它仍然播放流式内容。我尝试删除检查窗口计数是否大于 1,但它仍然没有显示覆盖视图。

    有人知道解决这个问题的方法吗?谢谢

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-01-15
      • 1970-01-01
      • 2014-09-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多