2017-10-18 11 views
1

Je suis un gars Swift qui fait un peu de travail Objc et j'essaie d'ajouter un son à mon application, le problème est, le path est null lorsque vous essayez de localiser le fichier enLocalisation d'un fichier audio à jouer dans l'objectif C

Le fichier se trouve à myProj/Resources/Sounds/genericButtonPress.wav

NSString *path = [[NSBundle mainBundle] pathForResource:@"myProj/Resources/Sounds/genericButtonPress" ofType:@"wav"]; 
    NSLog(@"%@", path); // NULL 
    NSURL *url = [NSURL fileURLWithPath:path]; 

    AVAudioPlayer *player = [[AVAudioPlayer alloc]initWithContentsOfURL:url error:NULL]; 
    [player play]; 

de la documentation, il semblait que pathForResource devait être absolue, mais je l'ai aussi essayé avec juste genericButtonPress que ma chaîne.

J'adorerais de l'aide ici. Merci!

+0

Avez-vous essayé 'NSString * chemin = [[NSBundle mainBundle] pathForResource: @" genericButtonPress "deType: @" wav "];'? –

+0

Je l'ai fait. Pas de chance. –

+0

Pour votre question, vous avez dit que le nom du fichier 'wav' est' mysound'. Mais dans votre code, vous recherchez 'genericButtonPress'. Êtes-vous sûr de ne pas utiliser le mauvais nom? Essayez 'NSString * chemin = [[NSBundle mainBundle] pathForResource: @" myProj/Ressources/Sons/mysound "deType: @" wav "];'. –

Répondre

0

La réponse est la suivante:

Rappelez-vous les enfants, assurez-vous que vos fichiers sont affecté à votre cible ou les choses ne se présenteront pas et ne fonctionneront pas. Cela vaut pour les polices et les fichiers audio en particulier.

+0

Je vous ai donné une réponse exacte bro. – user3182143

+0

Si vous essayez mon code, cela fonctionne parfaitement. – user3182143

0

Ma solution est

ViewController.h

#import <UIKit/UIKit.h> 
#import <AVKit/AVKit.h> 

@interface ViewController : UIViewController 
@property (nonatomic,strong)AVAudioPlayer *player; 
- (IBAction)actionPlayAudio:(id)sender; 
@end 

ViewController.m

#import "ViewController.h" 

@interface ViewController() 
@end 
@implementation ViewController 
@synthesize player; 

- (void)viewDidLoad { 
    [super viewDidLoad]; 
} 
- (IBAction)actionPlayAudio:(id)sender { 
    NSString *path = [[NSBundle mainBundle] pathForResource:@"youraudiofilename" ofType:@"wav"]; 
    NSURL *soundFileURL = [NSURL fileURLWithPath:path]; 
    player = [[AVAudioPlayer alloc] initWithContentsOfURL:soundFileURL error:nil]; 
    [player play]; 
}