Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typescript/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Background iPod-让本机音乐应用程序在后台播放声音_Background_Audio_Ipod_Avplayer - Fatal编程技术网

Background iPod-让本机音乐应用程序在后台播放声音

Background iPod-让本机音乐应用程序在后台播放声音,background,audio,ipod,avplayer,Background,Audio,Ipod,Avplayer,我正在为iPod构建一个应用程序。 运行时,本机iPod音乐应用程序应继续在后台播放,但不会发生这种情况 我想这可能与我的应用程序播放的声音有关。为了在某一点播放短声音,我使用了AVAudioPlayer。代码如下所示: NSString *path = [[NSBundle mainBundle] pathForResource:@"sound" ofType:@"mp3"]; NSLog(@"%@", path); player = [[AVAudioPlay

我正在为iPod构建一个应用程序。 运行时,本机iPod音乐应用程序应继续在后台播放,但不会发生这种情况

我想这可能与我的应用程序播放的声音有关。为了在某一点播放短声音,我使用了AVAudioPlayer。代码如下所示:

NSString *path = [[NSBundle mainBundle] pathForResource:@"sound" ofType:@"mp3"];
        NSLog(@"%@", path);
        player = [[AVAudioPlayer alloc] initWithData:[NSData dataWithContentsOfFile:path] error:nil];
        [player prepareToPlay];
        [player play];
- (void)applicationDidFinishLaunching:(UIApplication *)application {
    [[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryAmbient error:nil];
    // ...
}

- (void)applicationDidBecomeActive:(UIApplication *)application {
    // reactivate audio session
    [[AVAudioSession sharedInstance] setActive: YES error: nil];
}
这会干扰iPod上的本地音乐播放器吗? 还有一件事。在我的应用程序中,我集成了AdWhirl,它似乎使用了AudioToolbox

非常感谢,
George

您必须设置音频会话才能使用环境类别。这告诉系统您的声音应该与任何已经播放的声音混合。在iOS 4中执行此操作的最佳方法是在app delegate中,如下所示:

NSString *path = [[NSBundle mainBundle] pathForResource:@"sound" ofType:@"mp3"];
        NSLog(@"%@", path);
        player = [[AVAudioPlayer alloc] initWithData:[NSData dataWithContentsOfFile:path] error:nil];
        [player prepareToPlay];
        [player play];
- (void)applicationDidFinishLaunching:(UIApplication *)application {
    [[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryAmbient error:nil];
    // ...
}

- (void)applicationDidBecomeActive:(UIApplication *)application {
    // reactivate audio session
    [[AVAudioSession sharedInstance] setActive: YES error: nil];
}
阅读音频会话。如果你的应用程序产生声音,你总是想意识到并控制你的音频会话