2009-08-28 25 views
2

私は、ビューにビデオ(必要に応じてエンコードされたもの)をダウンロード(またはストリーミング)するアプリケーションを作成したいと思います。フルスクリーンでビデオを開くので、SDKからMPVideoPlayerを使いたくないです。私は、ユーザーがビデオに注釈を付けることができるように、ビデオ上に別のUIView(透明)を配置したいと思います。iPhoneのUIViewに埋め込みビデオ

誰でも何か考えているか、UIViewでビデオを再生するいくつかのコードを指摘できますか?

+0

何エンコーディングを?もしh.264なら、私がこれまでに知っている唯一の答え(そして私はたくさん見てきました)はあなた自身で書くことです。私はもっ​​と良い答えがあれば、とても興味がありますが、私はそこにいるとは思わない。 –

答えて

1

これを行うには、システム上のハードウェアアクセラレーションにアクセスできない独自の(ソフトウェア)ビデオデコーダを組み込む必要があります。許容できる性能で動作させることができても、それは巨大なバッテリーの消耗になります。

+0

iPhoneでビデオを再生するビデオプレイヤーアプリ(UStream、Qikなど)があります。 –

+0

はい、私は今説明したとおり、自分のソフトウェアデコーダをアプリに組み込み、内蔵のビデオ再生は、同じフレームレートと解像度で行います。 –

+0

Appleはなぜより優れたビデオサポートを提供しないのですか?それは馬鹿だ。ビデオは未来です。 –

0

MediaPlayerのプライベートヘッダをチェックして、単にビデオのビューをビューのサブビューとして追加する必要があります。

+0

その後、アップルはあなたのアプリを破棄してしまいます。 –

+1

特に明記されていない限り、OPは最終的な配信のための「合法的な」アプリケーションを作成したいと考えているのはおそらく合理的です。プライベートヘッダーはそれを排除します。 質問者:脱獄や潜在的な問題を含む解決策がアプリストアから許可されていない場合は、質問に答えてください。 – Olie

1

ビデオをポートレートモードで再生したい場合は、そのための解決策があります。

-MPMovie Playerがビューの下で実行できると思うなら、私によればそれは不可能です。

MPムービープレーヤーはAppleが設計したとおりに動作します。

したがって、MPムービープレーヤは常にフルスクリーンで実行されます。

ポートレートモードの解決策。

@interface MPMoviePlayerController (extend) 
-(void)setOrientation:(int)orientation animated:(BOOL)value; 
@end 

moviePlayer = [[MPMoviePlayerController alloc] initWithContentURL:movieUR]; 
[moviePlayer setOrientation:UIDeviceOrientationPortrait animated:NO]; 
if (moviePlayer) 
{ 
     [self.moviePlayer play]; 
} 

希望はあなたに役立つでしょう。

私の質問はあなたのように非常に似ています。

playing video in custom size screen - view in iphone

1

これを試してみてください:

UIViewController *v = [[UIViewController alloc] init]; 
v.view.backgroundColor = [UIColor orangeColor]; 

NSString *path = [[NSBundle mainBundle] pathForResource:@"demo" ofType:@"mp4"];  
if (![[NSFileManager defaultManager] fileExistsAtPath:path]) 
{ 
    NSLog(@"cannot find %@ in bundle or doctuments", path); 
} 

NSURL *url = [NSURL fileURLWithPath:path]; 


MoviePlayerViewController *mpvc = [[MoviePlayerViewController alloc] initWithContentURL:url]; 

[[NSNotificationCenter defaultCenter] addObserver:self 
             selector:@selector(movieFinishedCallback:) 
              name:MPMoviePlayerPlaybackDidFinishNotification 
              object:mpvc.moviePlayer]; 

mpvc.moviePlayer.fullscreen = NO; 
[mpvc.moviePlayer setControlStyle:MPMovieControlStyleNone]; 
mpvc.moviePlayer.view.frame = CGRectMake(10, 100, 300, 300); 

[v.view addSubview:mpvc.moviePlayer.view]; 
[mpvc.moviePlayer play]; 

[self presentModalViewController:v animated:YES]; 

[v release]; 
関連する問題