gpt4 book ai didi

cocoa-touch - MPMoviePlayerViewController 黑屏问题!

转载 作者:行者123 更新时间:2023-11-29 13:51:20 26 4
gpt4 key购买 nike

我有这段代码试图在 iPhone 4 模拟器上运行视频。

问题是它看起来像是加载了播放器,但半秒后在整个应用程序的顶部加载了一个后屏幕,禁用了触摸和所有内容,而且看起来它也没有播放视频,因为我不能听到任何声音。

有什么想法吗?!

MPMoviePlayerViewController *mp =
[[MPMoviePlayerViewController alloc] initWithContentURL:videoUrl];

if (mp) {
mp.moviePlayer.scalingMode = MPMovieScalingModeFill;
mp.moviePlayer.movieSourceType = MPMovieSourceTypeFile;
[mp.moviePlayer play];

[self presentMoviePlayerViewControllerAnimated:mp];

[mp release];
}

最佳答案

我认为问题是由释放 MPMoviePlayerViewController 引起的。只需保留 Controller ,直到您用完为止。

在“[mp 发布];”之前添加此行以保存值。

self.moviePlayerViewController = mp;

然后更新你的 dealloc 方法来执行释放:

- (void)dealloc {
[_moviePlayerViewController release], _moviePlayerViewController = nil;
[super dealloc];
}

将合成添加到 .m 文件的顶部:

@synthesize moviePlayerViewController = _moviePlayerViewController;

将定义添加到 .h 文件的@interface:

MPMovieViewController *_moviePlayerViewController;

将属性添加到您的 .h 文件中:

@property (readwrite, retain) MPMovieViewController *moviePlayerViewController;

您可能需要在 header 中添加一些 header :

#import <MediaPlayer/MediaPlayer.h>
#import <MediaPlayer/MPMoviePlayerViewController.h>

您可能还需要平衡您的“presentMoviePlayer”调用与某处的关闭:

[self dismissMoviePlayerViewControllerAnimated];

呸,代码无处不在。无论如何,如果您提前完成了资源,您可以通过使用 NotificationManager 来监视 MPMoviePlayerPlaybackDidFinishNotification 来更快地释放它。这样的例子很多,我就不重复了。

希望这对您有所帮助。

关于cocoa-touch - MPMoviePlayerViewController 黑屏问题!,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3231033/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com