声音无法在iOS模拟器中播放。没有错误

时间:2014-03-24 21:50:47

标签: objective-c xcode

我构建了一些应该在单击按钮时播放音频的代码。代码中没有错误,但是当我打开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秒。

非常感谢任何帮助! 谢谢!

2 个答案:

答案 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