菜鸟教程小白 发表于 2022-12-12 12:09:22

ios - 应用程序录制的视频在手机上播放时有时不播放音频


                                            <p><p>我们的应用录制和播放(那些)视频。但不知何故,有些视频播放时没有声音。</p>

<p>如果我通过 iTunes 将视频文件复制到 mac,它会播放有声视频,所以视频确实有声音。</p>

<p>我使用工具(称为 GSpot)检查了视频,它们都具有相同的音频编解码器和比特率。</p>

<p>我尝试了我在 SO 上找到的所有内容,但有些视频不播放音频,而且代码始终相同,而且视频确实有声音,就像在 mac 上一样,你可以听到。</p>

<p>这就是我设置播放器的方式</p>

<pre><code>AVAudioSession *audioSession = ;
NSError *setCategoryError = nil;
;
[audioSession setCategory:AVAudioSessionCategoryPlayback
                           error:&amp;setCategoryError];

_mpviewController = [ initWithContentURL:];

_mpviewController.moviePlayer.movieSourceType   = MPMovieSourceTypeFile;
_mpviewController.moviePlayer.controlStyle      = MPMovieControlStyleNone;
;

_mpviewController.moviePlayer.shouldAutoplay = YES;

;

_mpviewController.view.frame = CGRectMake(0, 0, _screenWidth, _screenHeight);

;
</code></pre>

<p>一段时间后,按下按钮,它开始播放。</p>

<p>录音设置</p>

<pre><code>;

;

AVCaptureDevice * videoDevice = ;
BOOL lock = ;
if(lock) videoDevice.focusMode = AVCaptureFocusModeContinuousAutoFocus;
;

if(videoDevice == nil){
    assert(0);
}

AVCaptureDeviceInput *input = ;
if(error){
    assert(0);
}

;

AVCaptureDevice *audioDevice      = ;
AVCaptureDeviceInput * audioInput   = ;
if(audioInput != nil) {
    ;
}

;
</code></pre>

<p>我不知道这是否相关,但音频似乎无法在录制期间覆盖不同 View 的视频上播放。录制时可以在视频预览上覆盖全屏 View ,它可以很好地录制,并且文件本身有音频,并且它们在 pc/mac 上可以正常播放......仅在我们应用程序内的设备上这些视频(再次,不确定如果相关)没有音频。应用程序对每个视频都使用相同的代码,所以我可以重命名它们,交换它们等,行为与视频的音频 channel 有关。</p>

<p><strong>编辑</strong></p>

<p>补充观察:
没有声音的视频,quicktime(仅在mac上)也不会播放音频。 Windows 上的 QT 确实播放音频,Windows 上的所有其他播放器也播放音频。
手机不知何故损坏了自己的录音,以至于之后它无法识别刚刚录制的音频 channel </p>

<p><strong>编辑 2</strong></p>

<p>iPhone 6、iOS 8.1beta 2 -> 如上所述
iPhone 4S、iOS 7.1.2 -> 没有问题
iPad mini,iOS 8.0.2 -> 总是有问题,没有一个视频音频 channel 可以读取,但始终存在并且 windows 可以播放音频</p></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p>我想总结一下。</p>

<p>文件保存为“.mp4”,这会导致偶发错误。
将文件另存为“.mov”有效。相同的编解码器等,但没有错误。</p>

<pre><code>NSString *path = [[documentsDirectoryPath stringByAppendingPathComponent:
   ] stringByAppendingString:@&#34;.mov&#34;];

outputURL = [ initFileURLWithPath:path];

;
</code></pre></p>
                                   
                                                <p style="font-size: 20px;">关于ios - 应用程序录制的视频在手机上播放时有时不播放音频,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/26466345/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/26466345/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: ios - 应用程序录制的视频在手机上播放时有时不播放音频