在不中断音频的情况下播放视频 - 目标 c

Posted

技术标签:

【中文标题】在不中断音频的情况下播放视频 - 目标 c【英文标题】:Playing video without audio interruption - objective c 【发布时间】:2012-07-24 15:10:43 【问题描述】:

我的应用播放视频文件时没有声音。它会中断背景中的任何播放音乐(例如 iPod 应用程序)。如果可能的话,如何不中断其他应用程序的音频会话。 我的视频文件没有声音。要播放视频,我使用MPMoviePlayerController

编辑:这是我的视频播放器代码:

_player = [[MPMoviePlayerController alloc] initWithContentURL:[NSURL fileURLWithPath:path]];
[self installMovieNotificationObservers:nil];
[_player setShouldAutoplay:YES];
[_player setUseApplicationAudiosession:NO];
[_player.view setFrame:self.navController.view.frame];
[_player setMovieSourceType:MPMovieSourceTypeFile];
[_player setRepeatMode:MPMovieRepeatModeNone];
[_player setFullscreen:YES animated:YES];
[_player setControlStyle:MPMovieControlStyleNone];
[_navController.view addSubview:_player.view];
[_player play];

【问题讨论】:

重复; ***.com/questions/1201815/… 【参考方案1】:

直接来自 Apple 的文档: http://developer.apple.com/library/ios/documentation/mediaplayer/reference/MPMoviePlayerController_Class/Reference/Reference.html#//apple_ref/occ/instp/MPMoviePlayerController/useApplicationAudioSession

使用ApplicationAudioSession 一个布尔值,指示是否 电影播放器​​应使用应用的音频会话。

@property (nonatomic) BOOL useApplicationAudioSession 讨论 此属性的默认值为 YES。将此属性设置为 NO 导致电影播放器​​使用系统提供的音频会话 不可混合播放类别。

重要提示在 iOS 3.1 及更早版本中,电影播放器​​始终使用 系统提供的音频会话。在 iOS 3.2 中获得相同的行为 以及更新版本,您必须将此属性的值设置为 NO。当这 属性为 YES,电影播放器​​共享应用程序的音频会话。这 让您控制电影播放器​​内容与您的互动的方式 音频和来自其他应用程序(如 iPod)的音频。对于重要的 有关使用此功能的指南,请参阅“使用电影和 iPod 音频会话编程指南中的音乐”。

更改此属性的值不会影响当前 播放电影。要使新设置生效,您必须停止 播放,然后重新开始。

可用性 适用于 iOS 3.2 及更高版本。宣布于 MPMoviePlayerController.h

【讨论】:

没有帮助。也许我错过了什么?请检查我更新的代码。【参考方案2】:

Swift 5 答案

  do 
        if #available(iOS 10.0, *) 
            try AVAudioSession.sharedInstance().setCategory(AVAudioSession.Category.playback, mode: AVAudioSession.Mode.default, options: .mixWithOthers)
         else 
            try AVAudioSession.sharedInstance().setCategory(AVAudioSession.Category.playback, options: .mixWithOthers)
        
        try AVAudioSession.sharedInstance().setActive(true)
   catch 
        print(error)
  

【讨论】:

以上是关于在不中断音频的情况下播放视频 - 目标 c的主要内容,如果未能解决你的问题,请参考以下文章

iOS - 在录制视频时播放音频/声音

asp.net中,在不播放视频的情况下如何获得视频长度

如何防止使用 AVFoundation 录制视频中断当前正在播放的任何全局音频(Swift)?

iOS音频问题通用配置

在 Agora.io 视频通话后 Unity VideoPlayer 音频中断

HTML5 视频播放器显示以在浏览器中启用 Flash。如何在不启用 Flash 的情况下播放流视频?