1

StackOverflow のすべての投稿を確認しましたが、バンドルからビデオを取得してコントローラーで再現する方法の完全な例を取得できません。

多くのことを試しましたが、画面が空白または黒く表示されました。

最後の修正では、私のビデオは次のようになります。

ここに画像の説明を入力

ログにエラーはスローされません。これは私のコードです:

.h (コントローラーの名前は無視してください。最終的にはカメラになります)

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

@interface NativeCameraViewController : UIViewController
@end

.m

#import "NativeCameraViewController.h"

@interface NativeCameraViewController ()

@property (nonatomic, retain) AVPlayerViewController *avPlayerViewcontroller;

@end

@implementation NativeCameraViewController

- (void)viewDidLoad {
    [super viewDidLoad];

    UIView *view = self.view;

    NSString *stringPath = [[NSBundle mainBundle]pathForResource:@"video" ofType:@"mov"];


    NSURL *fileURL = [NSURL fileURLWithPath:stringPath];

    AVPlayerViewController *playerViewController = [[AVPlayerViewController alloc] init];


    playerViewController.player = [AVPlayer playerWithURL:fileURL];

    self.avPlayerViewcontroller = playerViewController;

    [self resizePlayerToViewSize];

    [view addSubview:playerViewController.view];

    view.autoresizesSubviews = TRUE;
}

- (void)didReceiveMemoryWarning {
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}


- (void) resizePlayerToViewSize
{
    CGRect frame = self.view.frame;

    NSLog(@"frame size %d, %d", (int)frame.size.width, (int)frame.size.height);

    self.avPlayerViewcontroller.view.frame = frame;
}


@end

それが私がこれまでに得たものです。私のビデオはvideo.movと呼ばれる Bundle に正しくあります:

ここに画像の説明を入力

リンクとコピーの両方を試しました。同じ結果です。

私は何を間違っていますか??

事前にどうもありがとうございました。


MPMoviePlayerControlleriOS9で非推奨なので使用は避けたい

4

2 に答える 2

0

実は私のせいだった…

エイリアスを再現しようとしていました。

20.000 のビデオと 30.000 のリソースがある場合、このようなことが起こります。

于 2015-11-14T21:44:37.343 に答える
-1

AVPlayer を使用する代わりに、MPMoviePlayerController クラスを使用します。

NSString *path = [[NSBundle mainBundle] pathForResource:@"video" ofType:@"mov"]; 

NSURL *url = [NSURL fileURLWithPath:path];

MPMoviePlayerController *player = [[MPMoviePlayerController alloc] initWithContentURL:url];

[player play];
于 2015-11-13T02:24:44.457 に答える