我构建了一些应该在单击按钮时播放音频的代码。代码中没有错误,但是当我打开iOS模拟器并按下按钮时,没有声音播放。按钮执行点击动画,但没有任何反应。 我有AVFoundation和AudioToolbox框架。 我的资源中也有我的音频文件。 我没有使用断点。 该按钮设置为使用' playAudio:' Touch Up Inside的第一响应者。
这是我的' ViewController.h'文件:
#import <UIKit/UIKit.h>
#import <AudioToolbox/AudioToolbox.h>
#import <AVFoundation/AVFoundation.h>
@interface ViewController : UIViewController
@property (strong, nonatomic) AVAudioPlayer *audioPlayer;
- (IBAction)playAudio:(id)sender;
@end
这是我的&#39; ViewController.m&#39;文件:
#import "ViewController.h"
#import <AVFoundation/AVFoundation.h>
#import <AudioToolbox/AudioToolbox.h>
@interface ViewController ()
@end
@implementation ViewController
- (IBAction)playAudio:(id)sender {
AVAudioPlayer *audioPlayer;
NSString *audioPath = [[NSBundle mainBundle] pathForResource:@"AudioFile" ofType:@"wav"];
NSURL *audioURL = [NSURL fileURLWithPath:audioPath];
audioPlayer = [[AVAudioPlayer alloc] initWithContentsOfURL:audioURL error:nil];
[audioPlayer play];
sleep(5);
};
-(void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
}
- (void)didReceiveMemoryWarning
{
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
@end
音频片段约为3秒。
非常感谢任何帮助! 谢谢!
答案 0 :(得分:1)
我对ios很新,但我遇到了同样的问题,并且能够解决它。
我只是将我的AVAudioPlayer变量声明为全局变量并调用
[audioPlayer prepareToPlay];
前
[audioPlayer play];
只是调用prepareToPlay没有修复它,我必须声明全局变量才能使它工作。 不知道为什么这会对模拟器产生影响,但它现在可以正常工作。
答案 1 :(得分:1)
在objective-c中播放声音/音乐文件, 我遇到了同样的问题,并且能够使用以下代码修复它。
.h file
#import <UIKit/UIKit.h>
#import <AudioToolbox/AudioToolbox.h>
#import <AVFoundation/AVFoundation.h>
@interface ViewController : UIViewController
- (IBAction)actionOnPlayButton:(id)sender;
- (IBAction)actionOnStopButton:(id)sender;
- (void)playSound ;
@end
.m file
#import "ViewController.h"
@interface ViewController ()
@end
@implementation ViewController
AVAudioPlayer *audioPlayer;
- (void)viewDidLoad {
[super viewDidLoad];
self.title = @"Play Music";
}
-(void)playSound{
NSString *soundFilePath = [[NSBundle mainBundle] pathForResource:@"sound10"
ofType:@"mp3"];
NSURL *soundFileURL = [NSURL fileURLWithPath:soundFilePath];
audioPlayer = [[AVAudioPlayer alloc] initWithContentsOfURL:soundFileURL error:nil];
audioPlayer.numberOfLoops = -1;
[audioPlayer prepareToPlay];
[audioPlayer play];
}
- (IBAction)actionOnPlayButton:(id)sender {
[self playSound];
}
****使用上面的代码行,它会正常工作...... 注意: - 不要忘记导入以下框架: - **
#进口 #import