0

目标:我试图在单击按钮时播放声音。该声音将由称为“播放”的动作执行。声音在我的资源文件夹中,名为 SoftClick.mp3

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

连接:需要发出声音的按钮连接到动作播放,并用作模态转场以显示另一个视图控制器。两个视图控制器都使用相同的 .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 等尝试过的组合一样工作。我不想从别人那里窃取代码并试图自己构建它。

先谢谢了,

留置权

4

1 回答 1

0

我假设您使用的是 ARC,问题在于您没有保留该AVAudioPlayer对象。您创建对象,调用 play,但随后它立即被释放并释放。您需要添加self.audioPlayer = theAudio;

于 2013-10-13T16:45:13.760 回答