2011-06-26 14 views
0

iOS 3.2にiPhone.priorのhttpストリーミングで* .m3U8ビデオファイルをストリーミングしたいのですが、これはiPhone上で完璧に再生されていました。
しかし、MoviePlayer APIの最新の変更では、iOS4デバイスでこのファイルをストリーミングできません。MPMoviePlayerViewControllerを使用してiOS 4のビデオをストリーミングしますか?

私は今このファイルを再生するためにMPMoviePlayerViewControllerオブジェクトを使用していますが、エラーが発生するたびに "エラーコード= 2。ファイルを再生できませんでした"というメッセージが表示されます。
エラーの説明は非常に不十分で、AppleのMPMoviePlayerViewControllerのサンプルコードは廃止されています。
解決策を手伝ったり、サンプルコードや作業の解決策を参考にしてください。

答えて

0

コントローラ:

#import <AVFoundation/AVFoundation.h> 

@property (nonatomic, retain) AVPlayer *avPlayer; 
@property (nonatomic, retain) IBOutlet PlayerView *playerView; 
@property (nonatomic, retain) AVPlayerItem *playerItem; 

// Use a HTTP URL, example: http://192.168.2.103/video.m3u8 
-(void) setUpPlayer:(NSURL*) url { 
    AVURLAsset *anAssest= [[AVURLAsset alloc]initWithURL:url options:nil]; 
    [anAssest loadValuesAsynchronouslyForKeys:[NSArray arrayWithObject:@"tracks"] completionHandler:^{ 
     NSError *error = nil; 
     AVKeyValueStatus status = [anAssest statusOfValueForKey:@"tracks" error:&error]; 
     if (status == AVKeyValueStatusLoaded) { 
      self.playerItem = [AVPlayerItem playerItemWithAsset:anAssest]; 
      self.avPlayer = [AVPlayer playerWithPlayerItem:self.playerItem]; 
      self.playerView.player=self.avPlayer; 
      [self.avPlayer play]; 
     } else { 
      NSLog(@"The asset's tracks were not loaded:\n%@", [error localizedDescription]); 
     } 
    }]; 
} 

ビュー:そのような

#import <AVFoundation/AVFoundation.h> 
#import <UIKit/UIKit.h> 
@interface PlayerView : UIView 
@property (nonatomic, retain) AVPlayer* player; 
@end 

#import "PlayerView.h" 
@implementation PlayerView 
+ (Class)layerClass { 
    return [AVPlayerLayer class]; 
} 
- (AVPlayer*)player { 
    return [(AVPlayerLayer*)[self layer] player]; 
} 
- (void)setPlayer:(AVPlayer*)player { 
    [(AVPlayerLayer*)[self layer] setPlayer:player]; 
} 
@end 

何か:Pあなたは、AppleのmediafilesegmenterコマンドでM3U8を作成する必要がありますが、おそらくそれはとにかく動作します。

+0

オーディオは再生されますが、ビデオは再生されません。また、プレーヤーのインターフェイスも提供されません。オーディオはバックグラウンドで再生を続けます。 httpストリーミングにMPMoviePlayerControllerを使用できないのですか? – amavi

関連する問題