AVPlayer 不播放音频 - iOS 9,Objective - C
AVPlayer not playing audio - iOS 9, Objective - C
我正在尝试在我的应用程序中播放来自 URL 的音频。 iOS 8(模拟器和物理设备)中的一切都按预期发生。对于 iOS 9,它在模拟器中工作,但在设备上,音频根本无法播放。出现流媒体,如果我点击播放,进度条也会显示正在加载和播放音频,但没有声音。此问题发生在 iOS 9 个物理设备中。它在 iOS 8 个物理设备上工作得很好。
我创建了一个简单的按钮。单击按钮时,加载 AVPlayerViewController 并使用给定的 URL 初始化 AVPlayer。代码如下:
#import "ViewController.h"
#import <AVKit/AVKit.h>
#import <AVFoundation/AVFoundation.h>
@interface ViewController ()
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
}
- (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
- (IBAction)playAudio:(id)sender {
NSURL *url = [NSURL URLWithString:@"https://path/to/my.mp3"];
[self performSegueWithIdentifier:@"playSegue" sender:url];
}
-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
AVPlayerViewController *viewController = (AVPlayerViewController *)segue.destinationViewController;
viewController.player = [AVPlayer playerWithURL:(NSURL *)sender];
}
@end
经过 5 天多的尝试和错误策略,我终于弄清楚我的问题出在 phone 的静音开关上。当它处于静音状态时,音频不播放!因此,我添加了以下代码行以将我的类别指定为播放,现在即使我的设备开关处于静音状态,它也会播放
[[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryPlayback error:nil];
谢谢!
对于遇到同样问题的任何人,这里是 Swift 解决方案。
try! AVAudioSession.sharedInstance().setCategory(AVAudioSessionCategoryPlayback, with: [])
还有一些documentation
我正在尝试在我的应用程序中播放来自 URL 的音频。 iOS 8(模拟器和物理设备)中的一切都按预期发生。对于 iOS 9,它在模拟器中工作,但在设备上,音频根本无法播放。出现流媒体,如果我点击播放,进度条也会显示正在加载和播放音频,但没有声音。此问题发生在 iOS 9 个物理设备中。它在 iOS 8 个物理设备上工作得很好。
我创建了一个简单的按钮。单击按钮时,加载 AVPlayerViewController 并使用给定的 URL 初始化 AVPlayer。代码如下:
#import "ViewController.h"
#import <AVKit/AVKit.h>
#import <AVFoundation/AVFoundation.h>
@interface ViewController ()
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
}
- (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
- (IBAction)playAudio:(id)sender {
NSURL *url = [NSURL URLWithString:@"https://path/to/my.mp3"];
[self performSegueWithIdentifier:@"playSegue" sender:url];
}
-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
AVPlayerViewController *viewController = (AVPlayerViewController *)segue.destinationViewController;
viewController.player = [AVPlayer playerWithURL:(NSURL *)sender];
}
@end
经过 5 天多的尝试和错误策略,我终于弄清楚我的问题出在 phone 的静音开关上。当它处于静音状态时,音频不播放!因此,我添加了以下代码行以将我的类别指定为播放,现在即使我的设备开关处于静音状态,它也会播放
[[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryPlayback error:nil];
谢谢!
对于遇到同样问题的任何人,这里是 Swift 解决方案。
try! AVAudioSession.sharedInstance().setCategory(AVAudioSessionCategoryPlayback, with: [])
还有一些documentation