- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个适用于 iOS 4.0-5.1 的应用程序,它使用 HTTP Live Streaming 来播放视频。我有一个简单的设置, View 中有一个按钮,当它被点击时开始播放流。这在 iOS 5 中运行良好,但在 iOS 4 中开始播放流之前需要点击两次按钮。有人知道为什么会发生这种情况以及如何在第一次点击按钮时播放视频吗?
这是我正在做的事情:
。H
#import <UIKit/UIKit.h>
#import <MediaPlayer/MediaPlayer.h>
@interface ViewController : UIViewController{
MPMoviePlayerController *moviePlayer;
}
@property (nonatomic, strong) MPMoviePlayerController *moviePlayer;
-(IBAction)playApple:(id)sender;
@end
-(IBAction)playApple:(id)sender{
if(self.moviePlayer){
self.moviePlayer = nil;
}
//Use Apple's sample stream
NSURL *mediaURL = [NSURL URLWithString:@"http://devimages.apple.com/iphone/samples/bipbop/bipbopall.m3u8"];
self.moviePlayer = [[MPMoviePlayerController alloc] initWithContentURL:mediaURL];
//Begin observing the moviePlayer's load state.
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(moviePlayerLoadStateChanged:)
name:MPMoviePlayerLoadStateDidChangeNotification
object:self.moviePlayer];
[self.moviePlayer setMovieSourceType:MPMovieSourceTypeStreaming];
[self.moviePlayer setShouldAutoplay:NO];//Stop it from autoplaying
[self.moviePlayer prepareToPlay];//Start preparing the video
}
#pragma mark Notification Center
- (void)moviePlayerLoadStateChanged:(NSNotification *)notification{
NSLog(@"State changed to: %d\n", moviePlayer.loadState);
if(self.moviePlayer.loadState == MPMovieLoadStatePlayable){
//if load state is ready to play
[self.view addSubview:[self.moviePlayer view]];
[self.moviePlayer setFullscreen:YES];
[self.moviePlayer play];//play the video
}
}
最佳答案
我可以看到一些可能的问题 - 试一试,让我们知道是否有任何或所有这些都成功了。
1.负载状态掩蔽loadstate
不应该直接比较,而是在比较之前屏蔽,因为它可能包含多种状态的混合。
MPMovieLoadState
Constants describing the network load state of the movie player.
enum {
MPMovieLoadStateUnknown = 0,
MPMovieLoadStatePlayable = 1 << 0,
MPMovieLoadStatePlaythroughOK = 1 << 1,
MPMovieLoadStateStalled = 1 << 2,
};
typedef NSInteger MPMovieLoadState;
-(IBAction)playApple:(id)sender
{
if(self.moviePlayer)
{
self.moviePlayer = nil;
}
//Use Apple's sample stream
NSURL *mediaURL = [NSURL URLWithString:@"http://devimages.apple.com/iphone/samples/bipbop/bipbopall.m3u8"];
self.moviePlayer = [[MPMoviePlayerController alloc] initWithContentURL:mediaURL];
//Begin observing the moviePlayer's load state.
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(moviePlayerLoadStateChanged:)
name:MPMoviePlayerLoadStateDidChangeNotification
object:self.moviePlayer];
self.moviePlayer.view.frame = self.view.bounds;
[self.view addSubview:[self.moviePlayer view]];
[self.moviePlayer setFullscreen:YES];
[self.moviePlayer setMovieSourceType:MPMovieSourceTypeStreaming];
[self.moviePlayer setShouldAutoplay:NO]; //Stop it from autoplaying
[self.moviePlayer prepareToPlay]; //Start preparing the video
}
- (void)moviePlayerLoadStateChanged:(NSNotification *)notification
{
NSLog(@"State changed to: %d\n", moviePlayer.loadState);
if((self.moviePlayer.loadState & MPMovieLoadStatePlayable) == MPMovieLoadStatePlayable)
{
//if load state is ready to play
[self.moviePlayer play];//play the video
}
}
关于ios - MPMoviePlayerController 仅在调用两次时播放。仅在 iOS 4 中出现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12041008/
我有这个 MPMovePlayerController 和一个自定义 slider (它不是一个 slider ,但它具有相同的目的)。考虑到我的“ slider ”可以返回我需要的任何浮点值,我怎样
我正在使用 m3u8 视频格式来流式传输视频,现在我需要显示相同的字幕。 我在 Apple 文档中搜索,发现我可以通过使用 closedCaptionDisplayEnabled 来实现这一点。 AV
我正在使用 MPMoviePlayerController 在我的应用程序中播放一个视频。下面是我播放视频的代码。 **NSURL *url=[[NSURL alloc] initFileUR
请检查以下代码: (void) moviePlayerDidExitFullscreen:(NSNotification*)notification { MPMoviePlayerControlle
为了在我的应用中播放视频,我设置了 MPMoviePlayerController并将其添加到 subview 。用户可以使用捏合手势更改为全屏模式。 在此 viewController (包含电影播
有没有捕捉异常的方法(特别是对于网络错误 /没有可用连接)当使用 MPMoviePlayerController 时? 我特别担心一旦播放器的实例被初始化为 initWithURL:您无法知道电影加载
这真让我抓狂。 很简单,我有一个 MPMoviePlayerViewController 并且想要全屏显示电影。 在 iOS 5.0+ 上使用 ARC 我想让这个播放器应用程序范围内可重用。 这部电影
MPMoviePlayerController 似乎存在问题,一旦您处于全屏模式并按住快进按钮,让它向前搜索(以快速播放)一直到视频结尾。 此后,你只会得到一个黑屏,它被卡住了。换句话说,它不响应任何
我正在使用 MPMoviePlayerController 在 iPad 上播放电影。 当用户将设备旋转到横向时,我将其设置为全屏。 如果用户随后点击“退出全屏”或“完成”,电影将动画回到其小帧( n
我正在将应用程序移植到 iOS 8。我有一些代码可以播放以前可以运行的视频,但现在不能了。 当我运行它时,我收到以下错误: ( "", "", "", "", "", "", "", "", "" )
MPMoviePlayerController 支持哪些格式? 最佳答案 根据the documentation : 支持的格式 此类播放 iOS 支持的任何电影或音频文件。这包括流式内容和固定长度文
已结束。此问题正在寻求书籍、工具、软件库等的推荐。它不满足Stack Overflow guidelines 。目前不接受答案。 我们不允许提出寻求书籍、工具、软件库等推荐的问题。您可以编辑问题,以便
这是代码 - (void)applicationDidFinishLaunching:(UIApplication *)application { NSBundle *bundle = [NSBu
每次我的应用程序更改显示的动画(这是一部循环电影)时,他都会暂停,直到最终开始播放电影。MoviePlayerConntroller 是这样创建的 self.moviePlayer = [MP
MPMoviePlayerController 几乎按照我想要的方式工作,除了它覆盖了屏幕上的任何其他项目,例如我的导航栏。有没有办法阻止这种情况发生? 最佳答案 它的播放器是基于 UIView 的,
我们可以像MPMoviePlayerController中的默认Slider一样制作自定义控件吗用于前进和后退电影? 最佳答案 虽然您无法修改 MPMoviePlayerController 类,但您
我想自定义 MPMoviePlayerController 来为视频播放器添加更多控制。我可以添加额外的控件,但顶部缓冲控件被删除。我怎样才能让它可见? 最佳答案 我对你的问题的理解是你想在 MPMo
MPMoviePlayerController *player = [[MPMoviePlayerController alloc] initWithContentURL:video_url]
如何调整 MPMoviePlayerController 的帧大小? 最佳答案 通过新版本的 MPMoviePlayerController,您可以做到。 关于iphone - MPMoviePlay
我需要在没有播放器任何覆盖的情况下播放电影。没有播放/停止按钮,没有时间线,没有开始/结束时间,没有进度条,什么都没有。只是 subview 中的普通裸体电影。然后这部电影可能会被我自己的图形覆盖。该
我是一名优秀的程序员,十分优秀!