目标: 当点击按钮时,我正试图播放声音。这个声音将由一个叫做“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等尝试过的组合。我不想从其他人那里窃取代码,而是试图自己构建这个代码。
先谢谢了,
连
答案 0 :(得分:0)
正如我假设您使用ARC一样,问题在于您没有保留AVAudioPlayer
对象。您创建对象,调用播放,但随后它会立即释放并释放。您需要添加self.audioPlayer = theAudio;