我正在尝试使用ipod播放应用内音频我正在使用的代码播放音频文件:
代码:
[[AVAudioSession sharedInstance] setCategory: AVAudioSessionCategoryPlayback error: nil];
UInt32 doSetProperty = 1;
AudioSessionSetProperty (kAudioSessionProperty_OverrideCategoryMixWithOthers, sizeof(doSetProperty), &doSetProperty);
[[AVAudioSession sharedInstance] setActive: YES error: nil];
if(error)
{
NSLog(@"Some error happened");
}
NSString *path = [[NSBundle mainBundle] pathForResource:effect ofType:type];
myPlayer = [[AVAudioPlayer alloc] initWithContentsOfURL:[NSURL fileURLWithPath:path] error:NULL];
myPlayer.delegate = self;
myPlayer.numberOfLoops = -2;
myPlayer.volume = 1.0f;
[myPlayer play];
播放我正在使用的ipod音乐
代码:
player = [MPMusicPlayerController iPodMusicPlayer];
我的iPod播放正常,直到音频开始播放,但一旦音频停止,我就无法回到ipod播放。我正在使用
代码:
NSString *value = [[NSUserDefaults standardUserDefaults] stringForKey:@"sound"];
if([value compare:@"ON"] == NSOrderedSame && myPlayer != nil)
{
[myPlayer stop];
[myPlayer release];
myPlayer = nil;
}
NSError *error = nil;
[[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryAmbient error:&error];
if(error)
{
NSLog(@"Some error happened");
}
停止音频然后调用
代码:
[player play];
播放ipod音乐,但它不播放音乐,它说标题为空。
如果有人能帮助我,我真的很感激。
此致 ANKUR
答案 0 :(得分:1)
我建议将音频会话设置(包括Ambient类别)移动到应用程序委托的didFinishLaunchingWithOptions,而根本不使用Playback类别。您仍然可以使用Ambient设置播放AVAudio声音。
如果您想在播放AV声音时杀死iPod音乐,那么您应该只使用播放类别。 (我不确定你要做什么。)
当您尝试恢复iPod音乐时出现的错误表明,当AVAudio声音停止时,您的MPMusicPlayerController对象会重置其歌曲队列,并且您必须再次设置MP播放器。 “标题为空”绝对听起来像MP播放器中的悬空指针等。
答案 1 :(得分:1)
无法在AVAudioPlayer中播放iPod音频。您需要从ipod转换库Asset链接,使用* AVURLAsset转换为mp3或wav并将其保存到文档库。 IOS.5目前在从ipod到mp3文件的转换(AudioExportSession)中有一个错误,所以它不可能。抱歉。
答案 2 :(得分:0)
您需要在myPlayer
完成播放后恢复iPod播放器。
-(void) audioPlayerDidFinishPlaying:(AVAudioPlayer *)player successfully:(BOOL)flag {
[player play];
}