首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从代码控制AudioSession

从代码控制AudioSession
EN

Stack Overflow用户
提问于 2012-02-09 07:15:27
回答 1查看 336关注 0票数 0

在我的项目中,我有一个播放音乐的函数

代码语言:javascript
复制
-(void)playPlin {
AudioSessionSetActive(true);
// Set up audio session, to prevent iPhone from deep sleeping, while playing sounds
UInt32 category = kAudioSessionCategory_MediaPlayback;
AudioSessionSetProperty (
                         kAudioSessionProperty_AudioCategory,
                         sizeof (category),
                         &category
                         );

//UInt32 category = kAudioSessionCategory_MediaPlayback;
OSStatus result = AudioSessionSetProperty(kAudioSessionProperty_AudioCategory,
                                          sizeof(category), &category);

if (result){
    NSLog(@"ERROR SETTING AUDIO CATEGORY!\n");
}

result = AudioSessionSetActive(true);
if (result) {
    NSLog(@"ERROR SETTING AUDIO SESSION ACTIVE!\n");
}

NSString *soundFilePath = [[NSBundle mainBundle] pathForResource:@"chimes" ofType:@"wav"];
NSData *sampleData = [[NSData alloc] initWithContentsOfFile:soundFilePath];
NSError *audioError = nil;

AVAudioPlayer *alarmAudioPlayer = [[AVAudioPlayer alloc] initWithData:sampleData error:&audioError];
[sampleData release];
[[AVAudioSession sharedInstance] setCategory: AVAudioSessionCategoryPlayback error: nil];



if(audioError != nil) {
    NSLog(@"An audio error occurred: \"%@\"", audioError);
}
else {
    [alarmAudioPlayer play];
}       }

文件播放正常,但我有三个问题:

1.如何使音频文件不是从头开始,而是从我传递的秒数开始?例如,如果I步长值300音频文件应该从它的第二个300开始

2.如何设置音频文件的音量?

3.如何设置其循环属性?

提前感谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-02-09 08:35:41

这一切都在the documentation中非常清楚地展示出来了。

1)不使用play,使用playAtTime:方法调用。以秒为单位传递时间。

2)在AVAudioPlayer上设置volume属性。请注意,这是播放器的增益,并将根据当前系统音量进行调节。

3)设置numberOfLoops属性。指定一个像NSIntegerMax这样的巨大值来保持无限循环。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9203049

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档