Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/103.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 在NSObject类中使用AVAudioPlayer播放音频_Ios_Objective C_Avaudioplayer_Nsobject - Fatal编程技术网

Ios 在NSObject类中使用AVAudioPlayer播放音频

Ios 在NSObject类中使用AVAudioPlayer播放音频,ios,objective-c,avaudioplayer,nsobject,Ios,Objective C,Avaudioplayer,Nsobject,为了组织工作,我决定创建一个名为SoundPlayer的类,用于运行我应用程序中的所有音频文件。(这将避免有许多重复代码) 声音播放器 #import <Foundation/Foundation.h> #import <AVFoundation/AVFoundation.h> #include <AudioToolbox/AudioToolbox.h> @interface SoundPlayer : NSObject <AVAudioPlayerD

为了组织工作,我决定创建一个名为SoundPlayer的类,用于运行我应用程序中的所有音频文件。(这将避免有许多重复代码)

声音播放器

#import <Foundation/Foundation.h>
#import <AVFoundation/AVFoundation.h>
#include <AudioToolbox/AudioToolbox.h>

@interface SoundPlayer : NSObject <AVAudioPlayerDelegate>

@property (strong,nonatomic) AVAudioPlayer *backgroundMusicPlayer;

-(void)PlaySound:(NSString*)name extension:(NSString*)ext loops:(int)val;

@end
这段代码非常简单,看起来效果很好。当用户第一次打开我的应用程序时,我想播放一个声音,为此,我将该类称为insidedidFinishLaunchingWithOptions,如下所示:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{

    SoundPlayer *sound = [[SoundPlayer alloc] init];
    [sound PlaySound:@"preview" extension:@"mp3" loops:0];

    return YES;//Diz que o retorno esta ok!
}

问题是声音没有被执行(现在,如果我复制了SoundPlayer类中的所有代码并将其放入我将使用的类中,声音运行得很好),这是什么问题?

您的
SoundPlayer
类超出范围并被取消分配,这会使声音静音

将其分配给应用程序委托中的成员变量:

self.sound = [[SoundPlayer alloc] init];
[sound PlaySound:@"preview" extension:@"mp3" loops:0];
试试这个:

AppDelegate.h

 #import <UIKit/UIKit.h>
 #import "SoundPlayer.h"

 @interface AppDelegate : UIResponder <UIApplicationDelegate>
   @property (strong, nonatomic) UIWindow *window;
   @property(strong,nonatomic) SoundPlayer * soundPlayer;
@end
 #import <UIKit/UIKit.h>
 #import "SoundPlayer.h"

 @interface AppDelegate : UIResponder <UIApplicationDelegate>
   @property (strong, nonatomic) UIWindow *window;
   @property(strong,nonatomic) SoundPlayer * soundPlayer;
@end
#import "AppDelegate.h"
#import "SoundPlayer.h"

@interface AppDelegate ()

@end

@implementation AppDelegate


- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    // Override point for customization after application launch.
    self.soundPlayer = [[SoundPlayer alloc] init];
    [self.soundPlayer PlaySound:@"preview" extension:@"mp3" loops:0];
    return YES;
}