0

スプラッシュ画面を表示中にサウンドを追加したいのですが、ホーム画面に戻ると他のサウンドが再生されていますか?私の質問は、スプラッシュ画面が表示されている間にサウンドを生成するためのサウンド コードをどこで指定する必要があるかということです。

4

2 に答える 2

0

あなたを入れてください、しかしあなたのapplication didFinishLaunching中でそれをインスタンス化することを忘れないでください.hと.m。

このような何かがあなたの問題を解決するはずです:

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

    NSString* resourcePath = [[NSBundle mainBundle] resourcePath];
    resourcePath = [resourcePath stringByAppendingString:@"/YOURMUSICNAME.mp3"];
    NSLog(@"Path to play: %@", resourcePath);
    NSError* err;

    //Initialize our player pointing to the path to our resource
    player = [[AVAudioPlayer alloc] initWithContentsOfURL:
                 [NSURL fileURLWithPath:resourcePath] error:&err];

    if( err ){
        //bail!
        NSLog(@"Failed with reason: %@", [err localizedDescription]);
    }
    else{
        //set our delegate and begin playback
        player.delegate = self;
        [player play];
        player.numberOfLoops = -1;
        player.currentTime = 0;
        player.volume = 1.0;
    }
}

次に、それを停止したい場合:

[player stop];

または一時停止します:

[player pause];

また、ヘッダーファイルにインポートします。

#import <AVFoundation/AVFoundation.h>

これをヘッダーに追加します.....。

@interface ViewController : UIViewController <AVAudioPlayerDelegate>
于 2012-11-23T12:01:01.160 に答える
0

私はあなたがこれを試すことができると思います:

まず、プロジェクトにAVFoundation.Frameworkを追加します

in AppDelegate.m

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary  
  *)launchOptions
  {
    self.window = [[[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]] autorelease];
    // Override point for customization after application launch.
   self.viewController = [[[ViewController alloc] initWithNibName:@"ViewController" bundle:nil] 
  autorelease];
  self.navigate = [[UINavigationController alloc]initWithRootViewController:_viewController];
  self.window.rootViewController = self.navigate;
  [self.window makeKeyAndVisible];

 // Add this line to present splash;
  [self.viewController displayScreen];

  return YES;
 }

次に、rootViewController、つまり最初のviewControllerで

in .h

このフレームワークを追加

#import <AVFoundation/AVFoundation.h>

 AVAudioPlayer *avSound; //define this

-(void)displayScreen;
-(void)removeScreen;

次に、これら2つのメソッドを.mに追加します

-(void)displayScreen
{
   UIView *splashView = [[[UIView alloc]initWithFrame:CGRectMake(0, 0, 320, 480)]autorelease];
   splashView.backgroundColor = [UIColor colorWithPatternImage:[UIImage 
   imageNamed:@"Default.png"]];
   UIViewController *displayViewController=[[UIViewController alloc] init];
displayViewController.view = splashView;
[self presentModalViewController:displayViewController animated:NO];

      NSURL *soundURL = [[NSBundle mainBundle]  
     URLForResource:@"soundFile"withExtension:@"mp3/caf or whatever"];
      avSound = [[AVAudioPlayer alloc] initWithContentsOfURL:soundURL error:nil];
     [avSound play];//play sound;

    [self performSelector:@selector(removeScreen) withObject:nil afterDelay:4.0];


 }

 -(void)removeScreen
  {
   [[self modalViewController] dismissModalViewControllerAnimated:YES];

     if ([avSound isPlaying])
       [avSound stop];//stop playing sound;
  }

その後でリリース

-(void)dealloc
 {
       [super dealloc];
      [avSound release];
  }

それは私のために働いています、あなたも助けてくれることを願っています。

于 2012-11-23T12:46:49.213 に答える