-4

アプリの起動時にサウンドを再生し、ユーザーが「停止」ボタンでサウンドを一時停止できるようにしたいと考えています。どうやってやるの?

私の実際のコードは次のとおりです。

player1 = [[AVAudioPlayer alloc]
          initWithContentsOfURL:[NSURL fileURLWithPath:
          [[NSBundle mainBundle] pathForResource:@"Startsound" ofType:@"m4a"]]error:nil];
player1.numberOfLoops=-1;
[player1 prepareToPlay];
4

1 に答える 1

2

この質問はひねくれていたので、彼が言おうとしていることはわかりました。

これがあなたのやり方です。v1AppDelegate.h ファイルに追加します

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

@interface v1AppDelegate : UIResponder <UIApplicationDelegate>
{
    AVAudioPlayer *myAudioPlayer;
}

@property (nonatomic, retain) AVAudioPlayer *myAudioPlayer;

@property (strong, nonatomic) UIWindow *window;

@end

v1AppDelegate.m ファイルにこれを追加します

#import "v1AppDelegate.h"
#import <AVFoundation/AVFoundation.h>
#include <AudioToolbox/AudioToolbox.h>

@implementation v1AppDelegate

@synthesize window = _window;

@synthesize myAudioPlayer;


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

    //start a background sound
    NSString *soundFilePath = [[NSBundle mainBundle] pathForResource:@"Startsound" ofType: @"m4a"];
    NSURL *fileURL = [[NSURL alloc] initFileURLWithPath:soundFilePath ];    
    myAudioPlayer = [[AVAudioPlayer alloc] initWithContentsOfURL:fileURL error:nil];
    myAudioPlayer.numberOfLoops = -1; //infinite loop
    [myAudioPlayer play];


    // Override point for customization after application launch.
    return YES;
}

コードの他の場所からこの音楽を停止または開始したい場合は、これを追加するだけです

#import "v1AppDelegate.h"    
- (IBAction)stopMusic
    {
        v1AppDelegate *appDelegate = [[UIApplication sharedApplication] delegate];
        [appDelegate.myAudioPlayer stop];
    }


    - (IBAction)startMusic
    {
        v1AppDelegate *appDelegate = [[UIApplication sharedApplication] delegate];
        [appDelegate.myAudioPlayer play];
    }
于 2013-06-26T14:02:11.840 に答える