2012-02-08 54 views
1

我是iOS新手和开发应用程序。 我一直在寻找一个简单的例子来说明如何在应用程序启动时在后台播放音频文件。由于我正在开发的应用程序与音乐课有关,因此我需要在主屏幕处于活动状态时播放此音频。这是我迄今为止所做的...iOS 5 - 在应用程序启动时在后台播放音频文件

  1. 创建一个主屏幕(UIViewController)与一些背景图像和一个按钮进一步导航到应用程序。
  2. 中的.plist设置“所需的背景模式”
  3. 添加音频文件到项目
  4. 在我的控制,我有以下的代码块。

    - (void)viewDidLoad 
    { 
        [super viewDidLoad]; 
    
        //Set some labels here 
        //Set a background image 
    
        NSURL *url = [NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource:@"shrutiFsharp" ofType:@"mp3"]]; 
        AVAudioPlayer *audioPlayer = [[AVAudioPlayer alloc] initWithContentsOfURL:url error:nil]; 
    
        [[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryPlayback error:nil]; 
        [[AVAudioSession sharedInstance] setActive: YES error: nil]; 
        [[UIApplication sharedApplication] beginReceivingRemoteControlEvents]; 
    
        [audioPlayer play]; 
    
    } 
    

所有的标签,背景图像,按钮显示了罚款..和我能够浏览到另一个视图。但是当我在主屏幕上时,我无法播放音频文件。我正在运行iPhone 5.0模拟器。

我在控制台中看不到任何错误消息。

您在这里看到的代码来自已发布的示例..但我不太清楚为什么这不起作用。我可能很想念一些东西。任何帮助表示赞赏。

-KD

回答

0

您应该按照预期的方式使用错误参数。音频播放器完全有可能试图告诉你为什么它不能继续,但你忽略了它!

NSError *error = nil; 
AVAudioPlayer *audioPlayer = [[AVAudioPlayer alloc] initWithContentsOfURL:url 
                    error:&error]; 
if (error) { 
    NSLog(@"audio player error: %@", [error localizedDescription]); 
} 
+0

感谢您的回复。我在这篇文章中找到了解决方案。 http://stackoverflow.com/questions/8323294/playing-wav-sound-file-with-avfoundation。我用.h(非原子,保留)(我需要理解它的含义)将.m音频播放器声明移到.m中并将其合成,并且它可以工作! – javacup 2012-02-08 18:43:40

相关问题