2017-12-11 9 views
-3

私はビデオを再生しようとしているViewControllerを持っています。ビデオはローカルに自分のプロジェクトに追加されますが、私はViewControllerをを開いたときには、これを試してみてください、ビデオをobjective-Cで再生する

Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '*** -[NSURL initFileURLWithPath:]: nil string parameter' 

私のコードはこれです、エラーはこれです、

NSString *path=[[NSBundle mainBundle]pathForResource:@"Video" ofType:@"mp4"]; 
NSURL *url = [NSURL fileURLWithPath:path]; 
AVPlayer *player = [AVPlayer playerWithURL:url]; 
AVPlayerViewController *controller = [[AVPlayerViewController alloc]init]; 
controller.view.frame = self.view.bounds; 
[self.view addSubview:controller.view]; 
[player play]; 
+6

、エラーを読んだが...あなたはそれが何を意味するかと思いますか?あなたはこれをまったくデバッグしようとしましたか? – Fogmeister

+0

また、ローカルビデオがターゲットメンバーシップに追加されていることを確認してください。 **ビデオ - >ファイルのインスペクタ - >ターゲットメンバーシップを表示 - >有効にする** –

+0

私は言ったようにしていますが、まだ動作していませんエラーは削除されますが、 @ImadAli – Faheem

答えて

0

ローカルビデオがターゲットメンバーシップに追加されていることを確認してください。選択してください。

ビデオ - >ファイルのインスペクタ - >ターゲットメンバーシップ - >有効にします。

そして、次のコード行を追加します。だから、

controller.player = player; 
+0

ありがとうございました。 @イマド・アリ – Faheem

0

任意のエラーやアプリのクラッシュを示しています

ViewController.h

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

@interface ViewController : UIViewController 
@property (strong, nonatomic) AVPlayerViewController *playerViewController; 

@end 

ViewController.m

#import "ViewController.h" 

@interface ViewController(){ 
NSURL *vedioURL; 
} 

@end 

@implementation ViewController 
@synthesize playerViewController; 

- (void)viewDidLoad { 
[super viewDidLoad]; 


    NSString *fullpath = [[self documentsDirectory] stringByAppendingPathComponent:@"yourdate.3gp"]; 
    vedioURL =[NSURL fileURLWithPath:fullpath]; 
    AVPlayerItem* playerItem = [AVPlayerItem playerItemWithURL:vedioURL]; 
    AVPlayer* playVideo = [[AVPlayer alloc] initWithPlayerItem:playerItem]; 
    playerViewController = [[AVPlayerViewController alloc] init]; 
    playerViewController.player = playVideo; 
    playerViewController.player.volume = 0; 
    playerViewController.view.frame = self.view.bounds; 
    [self.view addSubview:playerViewController.view]; 
    [playVideo play]; 

} 


-(NSString *)documentsDirectory{ 
NSArray *paths = 
NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); 
NSString *documentsDirectory = [paths objectAtIndex:0]; 
return documentsDirectory; 
} 
+0

ビデオを再生していません。 @Mukesh – Faheem