【问题标题】:AVAudioPlayer is releasing before playing?AVAudioPlayer 在播放前释放?
【发布时间】:2012-02-24 06:37:38
【问题描述】:

我正在制作一个soundboard 应用程序,并使用此代码播放mp3 文件:

-(IBAction)playSound 
{
    NSString *path = [[NSBundle mainBundle] pathForResource:@"mysound" ofType:@"mp3"];
    AVAudioPlayer* theAudio=[[AVAudioPlayer alloc] initWithContentsOfURL:[NSURL fileURLWithPath:path] error:NULL];
    theAudio.delegate=self;
    [theAudio play];
    [theAudio release];
}

当我包含[theAudio release]; 时,声音不会播放。如果我把它拿出来,它会播放,但我不想出现内存泄漏。我该如何解决这个问题?

如果您可以包含我需要添加的任何代码,那将非常有帮助。我是编程新手(除了我在学校用过的 TrueBasic),所以我不熟悉 Objective-C。

【问题讨论】:

    标签: xcode audio release avfoundation


    【解决方案1】:

    等待音频通过委托完成以释放音频。我相信网站上有很多类似的帖子,如果你搜索,他们会有特定的委托代码。

    【讨论】:

      【解决方案2】:

      这只是因为您使用了局部变量。所以音频会立即发布。 您应该将其定义为类成员并在此处分配它。所以当这个功能完成后,它仍然可以工作。

      【讨论】:

      • 很遗憾有很多样本也犯了这个错误,你被误导了。
      猜你喜欢
      • 2012-01-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-11-12
      相关资源
      最近更新 更多