无法通过扬声器播放视频音频 - iOS

Posted

技术标签:

【中文标题】无法通过扬声器播放视频音频 - iOS【英文标题】:Cannot play video audio via speakers - iOS 【发布时间】:2015-10-16 16:26:16 【问题描述】:

我有一个 ios 9 应用程序,我已经在我的一个视图控制器中实现了 AVPlayerViewController。我正在尝试播放视频。我注意到的一个问题是,如果我插入耳机,耳机中的音频可以正常播放。但如果我拔下耳机,音频将从 iPhone 顶部的小耳机播放,而不是从主扬声器播放。我怎样才能改变这个?这是我的代码:

// Setup the video player view.
AVPlayerViewController *playerViewController = [[AVPlayerViewController alloc] init];
playerViewController.player = [AVPlayer playerWithURL:pass_URL];
self.player_view = playerViewController;
self.player_view.view.frame = self.view.frame;
[self.view addSubview:playerViewController.view];
self.view.autoresizesSubviews = TRUE;
[self.player_view.player play];

我已将以下框架导入到我的 Xcode 项目中:

#import <AVFoundation/AVFoundation.h>
#import <AVKit/AVKit.h>

感谢您抽出宝贵时间,丹。

【问题讨论】:

您是否像此处找到的答案一样更改了 AVAudioSession 的类别? ***.com/questions/32476523/… @Stonz2 我想在这里播放视频,而不是音轨。在任何情况下,Xcode 在添加该行时都会出现错误:Expected ; 是的,我注意到的答案有点畸形。他在枚举之前缺少方法名称setCategory: 的第一部分。 【参考方案1】:

您需要向您的 AVAudioSession 添加路由更改观察者 (AVAudioSessionRouteChangeNotification)。然后,如果需要,您可以检测耳机的移除并自行决定路由(例如使用overrideOutputAudioPort)。

【讨论】:

为什么每个人都在讨论AVAudioSession,它适用于您想单独播放音轨的情况。我正在尝试在这里播放视频。我遇到的问题是我无法通过扬声器播放视频的音轨。

以上是关于无法通过扬声器播放视频音频 - iOS的主要内容,如果未能解决你的问题,请参考以下文章

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

iOS 是不是可以在 iOS 11 的同时通过扬声器和耳机播放音频?

iOS 通过 iPhone 接收器(手机扬声器)播放音频

音频文件:仅通过一个扬声器播放数据?

解决部分mp4视频在ios上无法播放问题

如何在 iOS 视频播放器中播放 webm 文件