gpt4 book ai didi

ios - AVQueuePlayer 音频未播放

转载 作者:行者123 更新时间:2023-11-29 02:26:31 27 4
gpt4 key购买 nike

我有一个 AVQueuePlayer 属性,其设置如下。 NSLog 语句报告音频应该正常播放(应用程序运行时),但是在模拟器和 iOS 设备本身(iPhone 5s iOS 8.1.1)上进行测试时,没有音频播放.

我已确认设备没有静音,并且音量开到最大。我正在使用 Xcode 6 和 iOS 8 SDK。我在“链接二进制文件”部分导入了 AVFoundation 框架,并将其导入到我的类(class)中。

-(void)viewDidLoad
{
[super viewDidLoad];
[self music];
// other setup code
}


- (void)music
{
music = [[NSMutableArray alloc]initWithArray:@[
[AVPlayerItem playerItemWithURL:[NSURL URLWithString:[[NSBundle mainBundle] pathForResource:@"BM1"
ofType:@"mp3" ]]],

[AVPlayerItem playerItemWithURL:[NSURL URLWithString:[[NSBundle mainBundle] pathForResource:@"BM2"
ofType:@"mp3" ]]],
[AVPlayerItem playerItemWithURL:[NSURL URLWithString:[[NSBundle mainBundle] pathForResource:@"BM3"
ofType:@"mp3" ]]],

[AVPlayerItem playerItemWithURL:[NSURL URLWithString:[[NSBundle mainBundle] pathForResource:@"BM4"
ofType:@"mp3" ]]],
[AVPlayerItem playerItemWithURL:[NSURL URLWithString:[[NSBundle mainBundle] pathForResource:@"BM5"
ofType:@"mp3" ]]],

[AVPlayerItem playerItemWithURL:[NSURL URLWithString:[[NSBundle mainBundle] pathForResource:@"BM6"
ofType:@"mp3" ]]],



[AVPlayerItem playerItemWithURL:[NSURL URLWithString:[[NSBundle mainBundle] pathForResource:@"BM7"
ofType:@"mp3" ]]]



]];


for(AVPlayerItem *a in music)
{

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(playerItemFinished:) name:AVPlayerItemDidPlayToEndTimeNotification object:a];

}

[music shuffle];

self.audio = [[AVQueuePlayer alloc]initWithItems:music];


[self.audio play];



NSLog(@"Now playing%@",[self.audio currentItem]);

NSLog(@"%@",self.audio);









}
-(void)playerItemFinished:(NSNotification *)notification
{
if([[self.audio currentItem] isEqual:[music lastObject]])
{

self.audio = nil;

[music shuffle];

self.audio = [[AVQueuePlayer alloc]initWithItems:music];


[self.audio play];

}

}

最佳答案

尝试以这种方式构建数组:

music = [[NSMutableArray alloc] initWithArray:@[[AVPlayerItem playerItemWithURL:[[NSBundle mainBundle] URLForResource:@"BM1" withExtension:@"mp3"]],...]];

编辑:无论如何,恕我直言,最重要的方面是强调 withExtension 在 ofType 不起作用的地方起作用的原因:第一个返回由指定名称和文件扩展名标识的资源的文件 URL,其中 -pathForResource:ofType: 返回由指定名称和文件扩展名标识的资源的完整路径名。但是,您需要一个 NSURL 对象来初始化 AVPlayer,而 AVQueuePlayer 是 AVPlayer 的子类,您可以使用它来按顺序播放多个项目。

关于ios - AVQueuePlayer 音频未播放,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27467691/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com