gpt4 book ai didi

objective-c - 播放随机声音

转载 作者:塔克拉玛干 更新时间:2023-11-02 09:50:50 24 4
gpt4 key购买 nike

我如何在 iOS 5 的 xcode 中播放随机声音?我不断收到“抛出异常”错误。

我试过这个:

int randomNumber = arc4random() % 24 + 1;

NSString *tmpFileNameRandom = [[NSString alloc] initWithFormat:@"Sound%d", randomNumber];

NSString *fileName = [[NSBundle mainBundle] pathForResource:tmpFileNameRandom ofType:@"mp3"];

AVAudioPlayer * soundPlayer = [[AVAudioPlayer alloc] initWithContentsOfURL:[NSURL fileURLWithPath:fileName] error:nil];

[soundPlayer prepareToPlay];
[soundPlayer play];

谢谢!

最佳答案

首先,将您的 ViewController.h 更改为

#import <UIKit/UIKit.h>

@class AVAudioPlayer;

@interface ViewController : UIViewController

-(IBAction)PlayRandomSound;
@property (nonatomic, retain) AVAudioPlayer *soundPlayer;


@end

和 ViewController.m 的第一行

#import "ViewController.h"

#import <AVFoundation/AVAudioPlayer.h>


@implementation ViewController

@synthesize soundPlayer = _soundPlayer;


-(IBAction)PlayRandomSound{

int randomNumber = arc4random() % 8 + 1;

NSURL *soundURL = [NSURL fileURLWithPath:[[NSBundle mainBundle]pathForResource:[NSString stringWithFormat:@"Sound%02d", randomNumber] ofType:@"mp3"]];


_soundPlayer = [[AVAudioPlayer alloc] initWithContentsOfURL:soundURL error:nil];

[_soundPlayer prepareToPlay];
[_soundPlayer play];


NSLog(@"randomNumber is %d", randomNumber);
NSLog(@"tmpFilename is %@", soundURL);
}

编辑:我后来才注意到您没有使用 ARC,所以这段代码有一点漏洞。但它会做为开始。也许你应该在创建 ViewController 时将 _soundPlayer 设置为 nil,然后检查:如果它不是 nil:释放它并创建一个新的,否则就创建一个新的。或者,如果它是一个新项目,您可以考虑切换到 ARC。

关于objective-c - 播放随机声音,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8975266/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com