【问题标题】:Playing video without audio interruption - objective c在不中断音频的情况下播放视频 - 目标 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];

【问题讨论】:

标签: iphone objective-c ios mpmovieplayercontroller avaudiosession


【解决方案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)
  }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-06-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-22
    • 2012-10-09
    • 1970-01-01
    相关资源
    最近更新 更多