我正在使用MPMoviePlayerController为iOS 3.1.2播放直播流m3u8视频。它以全屏方式打开,这很好。但是,通常在播放10-20秒后,屏幕会自动调整大小。屏幕保持宽度不变,但会缩小高度,从而导致图像变窄、拉伸。不过,在播放预先录制的mp4视频时,我没有遇到这个问题。
你知道是怎么回事吗?知道怎么解决吗?
下面是我的代码:
MyViewController.h:
#import <UIKit/UIKit.h>
#import <MediaPlayer/MediaPlayer.h>
@interface WatchNowViewController : UIViewController {
MPMoviePlayerController *mMPPlayer;
}
@property (nonatomic, retain) MPMoviePlayerController *mMPPlayer;
@endMyViewController.m:
mMPPlayer = [[MPMoviePlayerController alloc] initWithContentURL:[NSURL URLWithString:@"http://www.mysite.com/myVideo.m3u8"]];
mMPPlayer.scalingMode=MPMovieScalingModeFill;
mMPPlayer.backgroundColor=[UIColor blackColor];
[mMPPlayer play];发布于 2011-04-20 01:52:02
MPMovieScalingModeFill不保留纵横比。如果希望保留纵横比,则应使用MPMovieScalingModeAspectFit或MPMovieScalingModeAspectFill。
有关所有模式的信息,请查看MPMovieScalingMode documentation。
发布于 2011-04-20 07:15:02
在mpeg-ts流的报头中有纵横比字段。如果存在此选项,则无论报告的宽度和高度如何,MPMoviePlayerController都会拉伸视频。错误的值将产生失真的视频。我不确定为什么这只会发生在20年后,但MPMoviePlayerController是一个可怕的类(特别是在iOS 4.0之前),所以谁能说得清……如果使用FFmpeg创建mpeg-ts流,则可以使用-aspect %f设置纵横比。
https://stackoverflow.com/questions/5719465
复制相似问题