IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

XCode Discussion :

Jai du son sur le simulateur et pas sur Ipad


Sujet :

XCode

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Développeur multimédia
    Inscrit en
    Septembre 2011
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur multimédia
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Septembre 2011
    Messages : 6
    Points : 6
    Points
    6
    Par défaut Jai du son sur le simulateur et pas sur Ipad
    HAAAA je deviens fou, j'ai suivi pas à pas le tutoriel suivant
    [ame="http://www.youtube.com/watch?v=dcLcZqJsHMc"][/ame]
    ce programme fonctionne correctement en mode simulateur mais pas en mode device sur l'IPAD
    voici mon code

    pour le .m
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    #import "TestSon2fileViewController.h"
    #import <AVFoundation/AVFoundation.h>
     
    @implementation TestSon2fileViewController
     
    - (IBAction)playSound1 {
    NSString *path=[[NSBundle mainBundle] pathForResource:@"gagne01" ofType:@"mp3"];
    AVAudioPlayer* theAudio=[[AVAudioPlayer alloc] initWithContentsOfURL : [NSURL fileURLWithPath: path] error:NULL];
    theAudio.delegate=self;
    [theAudio play];
    }
     
    - (IBAction)playSound2 {
    NSString *path=[[NSBundle mainBundle] pathForResource:@"perdu1" ofType:@"mp3"];
    AVAudioPlayer* theAudio=[[AVAudioPlayer alloc] initWithContentsOfURL : [NSURL fileURLWithPath: path] error:NULL];
    theAudio.delegate=self;
    [theAudio play];
    }
    et pour le .h
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    #import <UIKit/UIKit.h>
     
    @interface TestSon2fileViewController : UIViewController {
     
     
    }
     
    - (IBAction)playSound1;
    - (IBAction)playSound2;
     
     
    @end
    sachant qu'avant j'avais essayé de jouer du son AudioToolbox et que j'avais le même problême est qu'il est possible que j'ai un problème avec mon IPAD ou une initialisation mal faite ?

  2. #2
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Septembre 2006
    Messages
    2 937
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2006
    Messages : 2 937
    Points : 4 358
    Points
    4 358
    Par défaut
    a.
    NSBundle a une méthode URLForResource:extension: qui vous évite de devoir appeler fileURLWithPath:

    b.
    si vous voulez jouez des sons courts - genre clic lorsque l'utilisateur touche un objet de l'UI - utilisez :
    AudioServicesCreateSystemSoundID, AudioServicesPlaySystemSound, AudioServicesDisposeSystemSoundID
    (attention ce sont pas tous les mêmes formats qui sont compatibles : utilisez afconvert pour mettre le son dans un format compatible si nécessaire)

    c.
    pour jouez des sons longs :
    charger le son avec AVAudioPlayer comme vous le faites, appelez prepareToPlay et faites jouez le son dans un NSThread
    avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    selector:@selector(startAudioThread:)
    et
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    - (void)startAudioThread:(id)theAudio
    {
        NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
        [NSThread setThreadPriority:1.0];
    
    	while (self.isPlaying) {
    		[(AVAudioPlayer *) theAudio play] ;
    		[NSThread sleepForTimeInterval:0.01];
    	}
    	[pool drain] ;
    }
    self.isPlaying étant mis à YES lors de la création du NSThread,
    et à NO dans la méthode audioPlayerDidFinishPlaying:successfully: du delegate, le même "self" que celui passé à initWithTarget:selector:object: de NSThread.

    (voir exemples sur le site d'Apple, notamment le Metronome … en principe aussi sur votre disque :
    file:///Developer/Platforms/iPhoneOS.platform/Developer/Documentation/DocSets/com.apple.adc.documentation.AppleiOS4_3.iOSLibrary.docset/Contents/Resources/Documents/index.html#samplecode/Metronome/Introduction/Intro.html#//apple_ref/doc/uid/DTS40007434
    )

Discussions similaires

  1. problem applet fonctionne sur simulateur mé pas sur ie
    Par cutemeister dans le forum Applets
    Réponses: 3
    Dernier message: 06/04/2009, 20h22
  2. getMouseX() sur une image et pas sur la fenetre?
    Par WeDgEMasTeR dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 26/04/2006, 17h06
  3. JS bug sur un hebergeur et pas sur un autre !
    Par lacsap49 dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 03/04/2006, 17h38
  4. CSS : Bordure sur les liens mais pas sur les images ?
    Par monstroplante dans le forum Mise en page CSS
    Réponses: 1
    Dernier message: 04/02/2006, 14h18
  5. [CSS] border-collapse sur les TR mais pas sur les TD.
    Par hpfx dans le forum Mise en page CSS
    Réponses: 6
    Dernier message: 03/04/2005, 16h16

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo