小编Gam*_*mer的帖子

使用MPMoviePlayerController恢复中断的无线电流

我正在为iOS6设备开发一个在线广播应用程序.我寻找各种包装来完成这项任务.AVPlayer,MPMoviePlayerController等

我尝试使用AVPlayer,因为它听起来更正确,因为它只是音频应用程序.但很快我就遇到了这个问题:在这里

因此我切换到MPMoviePlayerController,这就是我想要做的:

    pPlayer = [[MPMoviePlayerController alloc] initWithContentURL:[NSURL URLWithString:@"http://launch.fusionradio.fm:8004"]];
    pPlayer.movieSourceType = MPMovieSourceTypeStreaming;
    pPlayer.view.hidden = YES;

    [[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryPlayback error:nil];
    [[AVAudioSession sharedInstance] setActive:YES error:nil];

    [pPlayer prepareToPlay];
    [pPlayer play];

    pPlayer.shouldAutoplay = YES;

    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(StreamStateChanged) name:MPMoviePlayerLoadStateDidChangeNotification object:pPlayer];
Run Code Online (Sandbox Code Playgroud)

在我的StreamStateChanged方法我做:

NSLog(@"Trying to replay");
[pPlayer pause];

[pPlayer play];
Run Code Online (Sandbox Code Playgroud)

pPlayer是MPMoviePlayer.一切都很好,除非有中断控制台吐出以下内容:

    Took background task assertion (1) for playback stall.
    Ending background task assertion (1) for playback stall.
Run Code Online (Sandbox Code Playgroud)

断言后的数字不断增加.一旦互联网连接稳定,它就会从中恢复.

我的问题是:这种方法是否正确?我一路走错了吗?是否可以忽略断言消息?

PS:请建议是否有更好的方法来开发使用不同API而不是MPMoviePlayerController的无线电流应用程序

谢谢 :)

objective-c radio mpmovieplayercontroller ios

10
推荐指数
1
解决办法
5435
查看次数

在渲染时设置glTexParameteri()是不是很糟糕?

我正面临着纹理包装的问题.这导致了文物.由于我的代码库变得越来越大,我能想到的唯一方法是执行某些检查以查看某些纹理是否属于导致工件的类别,并在绘制到渲染缓冲区之前更改参数.

一般来说一般都好吗?设置参数如

glTexParameteri( GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_MIRRORED_REPEAT);
glTexParameteri( GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_MIRRORED_REPEAT);
Run Code Online (Sandbox Code Playgroud)

在渲染循环期间glBindTexture之后?或者它会影响FPS,因为它会增加每个渲染帧期间的操作?

opengl opengl-es

6
推荐指数
1
解决办法
3324
查看次数

如何在iOS6中使用iAds

我正在使用iOS6 SDK和目前苹果弃用的横向模式.是否有任何解决方案可以使用横向iAd,因为我的游戏只能在横向模式下运行.

谢谢.

objective-c ios iad ios6

6
推荐指数
1
解决办法
272
查看次数