xcode5 - 按下按钮后播放声音不起作用

时间:2013-10-13 16:37:35

标签: ios objective-c audio xcode5

目标: 当点击按钮时,我正试图播放声音。这个声音将由一个叫做“play”的动作完成。声音在我的资源文件夹中,称为SoftClick.mp3

问题: 完全没有声音在模拟器或真实设备中播放。代码不会给出任何错误。

CONNECTIONS: 需要发出声音的按钮连接到动作播放,并用作模态分段以显示另一个视图控制器。两个viewcontrollers都使用相同的.h和.m脚本。

CODE FOR .H
#import <UIKit/UIKit.h>
#import<AVFoundation/AVAudioPlayer.h>


@interface ViewController : UIViewController

{
  AVAudioPlayer *audioPlayer;

}

@property (nonatomic, retain) AVAudioPlayer *audioPlayer;



- (IBAction) play;




@end

动作和音频人被定义为我认为必要的(?)

THE CODE FOR .M
#import "ViewController.h"
#import<AVFoundation/AVAudioPlayer.h>
@interface ViewController ()

@end

@implementation ViewController

@synthesize audioPlayer;


-(IBAction)play

{

    AVAudioPlayer* theAudio=[[AVAudioPlayer alloc] initWithContentsOfURL:[NSURL fileURLWithPath:[[NSBundle mainBundle]pathForResource:@"SoftClick"ofType:@"mp3"]] error:NULL];

    [theAudio play];

}

有人可以帮我纠正我的编码,这样可以在xcode5中使用吗? 我花了几个小时试图找出为什么这不会起作用,如没有segue等尝试过的组合。我不想从其他人那里窃取代码,而是试图自己构建这个代码。

先谢谢了,

1 个答案:

答案 0 :(得分:0)

正如我假设您使用ARC一样,问题在于您没有保留AVAudioPlayer对象。您创建对象,调用播放,但随后它会立即释放并释放。您需要添加self.audioPlayer = theAudio;