菜鸟教程小白 发表于 2022-12-13 12:37:51

ios - iOS 上的直播应用程序出现错误 849


                                            <p><p>我正在开发 iOS 应用程序的直播功能。我使用了一个包含在 ContainerView 中的 AVPlayerViewController 来显示视频。</p>

<p> <a href="/image/C42Yj.png" rel="noreferrer noopener nofollow"><img src="/image/C42Yj.png" alt="Storyboard Screenshot"/></a> </p>

<p>这里是 ViewController 的相关代码</p>

<pre class="lang-obj-c prettyprint-override"><code>@interface ViewController ()

@property MPMoviePlayerController* streamPlayer;
@property BOOL isPlaying;

@end

AVPlayerViewController *streamPlayer;

@implementation ViewController


- (void)viewDidLoad {

;

self.isPlaying = NO;

NSURL *streamURL = ;

streamPlayer = [[ UIStoryboard storyboardWithName:@&#34;Main&#34; bundle:nil] instantiateViewControllerWithIdentifier:@&#34;StreamPlayer&#34; ];


streamPlayer.player = [ AVPlayer playerWithURL:streamURL ];

}

- (IBAction)playVideo:(id)sender{


    if ( !self.isPlaying ){

    [ streamPlayer.player play ];

    ;

      self.isPlaying = YES;
    } else {

      [ streamPlayer.player pause ];

      ;

      self.isPlaying = NO;
    }

}
</code></pre>

<p><em>(你可以忽略isPlaying变量,只是看看我能控制什么)</em></p>

<p>流开始并正常工作几分钟,然后停止/缓冲(我认为)几秒钟并出现错误:</p>

<pre class="lang-obj-c prettyprint-override"><code>ERROR: 849: AudioQueue: request to trim 4291961269 + 0 = 4291961269 frames from buffer containing 21504 frames
</code></pre>

<p>在此之后流继续,但没有音频。 </p>

<p>偶尔会有一两秒钟的音频,但立即再次出现错误,并且流在静默中继续。 (当 Pitbull 视频正在播放时,我很高兴。)</p>

<p>如果我暂停流然后播放它,音频会返回几分钟,然后再次关闭。</p>

<p>我已经搜索过这个错误,但没有找到任何可以帮助我解决这个问题的东西。作为 iOS 和 HLS 的新手,我不知道问题可能是什么,但如果我不得不猜测,我会说这是音频和视频同步的问题。</p>

<p>感谢任何和所有的帮助。</p></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p>您的代码中有两个问题立即突出。</p>

<ol>
<li>您有两个 <code>streamPlayer</code> 变量。</li>
<li><code>AVPlayerViewController</code> 变量应该是一个<em>全局变量</em></li>
</ol>

<p>通过将您的 <code>AVPlayerViewController</code> 属性声明作为 <strong>全局变量</strong> 放入接口(interface)扩展中,应该可以解决错误。</p>

<p>代码如下所示:</p>

<pre><code>@interface ViewController ()

@property (nonatomic) MPMoviePlayerController *mpStreamPlayer;
@property (nonatomic) AVPlayerViewController *avStreamPlayer;

@property (nonatomic) BOOL isPlaying;

@end

@implementation ViewController


- (void)viewDidLoad ... // continue as expected
</code></pre>

<p>我假设它会得到解决的原因是<a href="https://stackoverflow.com/questions/31715341/playing-audio-in-xcode-7-swift-2-not-working" rel="noreferrer noopener nofollow">this</a>社区成员遇到了类似的问题,<strong>错误 849</strong>(他们的代码库是 SWIFT)和有效的答案。</p></p>
                                   
                                                <p style="font-size: 20px;">关于ios - iOS 上的直播应用程序出现错误 849,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/34648992/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/34648992/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: ios - iOS 上的直播应用程序出现错误 849