0

質問で申し訳ありませんが、紹介ビデオを実装しました。iPad のハードウェア サイレント スイッチにもかかわらず、オーディオは再生されています。短いサウンド サンプルを再生するためだけに、アプリ内で AVAudioplayer も使用しています。このクラス内で、「AVAudioSessionCategory」を設定した唯一のリージョンです。ただし、すべてのオーディオ再生のみでは、何も聞こえません。それは私の紹介ビデオのためだけです。

その「オーディオバグ」を修正して、ムービープレーヤーが無音になるようにする方法はありますか? ありがとうございます

これが私のオーディオクラスです:

- (id)initWithSoundfileName:(NSString*) file 
{
    if ((self = [super init]))
    {
        NSString* filename =       [file stringByDeletingPathExtension];
        NSString* fileextension =  [file pathExtension];

        // get file path from bundle
        NSString *soundFilePath = [[NSBundle mainBundle] pathForResource: filename ofType: fileextension];
        NSLog(@"AudioPlayer init: %@", soundFilePath);

        NSURL* fileurl = [[NSURL alloc] initFileURLWithPath:soundFilePath];
        NSError* error = nil;

        AVAudioPlayer* audioplayer = [[AVAudioPlayer alloc] initWithContentsOfURL:fileurl error:&error ];
        if (error) { NSLog(@"Error creating AVAudioPlayer %@", [error description]);}

        // set audio policy
        [[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryAmbient error:NULL];

        self.player =  audioplayer;
        [self.player prepareToPlay];
        [self.player setDelegate:self];
    }
    return self;

}
-(void) play{
    [self.player play];
}

そして、これが私のビデオ再生方法です:

- (void)playIntroVideo
{    
    NSString *movpath = [[NSBundle mainBundle] pathForResource:@"mymovie" ofType:@"mp4"];

    NSURL *fileURL    =   [NSURL fileURLWithPath:movpath];  
    self.moviePlayerController = [[MPMoviePlayerController alloc] initWithContentURL:fileURL]; 
    self.moviePlayerController.fullscreen = YES;
    self.moviePlayerController.scalingMode = MPMovieScalingModeAspectFit;
    self.moviePlayerController.controlStyle = MPMovieControlStyleNone;
    self.moviePlayerController.movieSourceType = MPMovieSourceTypeFile;

    self.moviePlayerController.useApplicationAudioSession = NO;     
    [self.moviePlayerController.view setFrame: self.view.bounds];   

    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(moviePlayBackComplete:)  
                                                 name:MPMoviePlayerPlaybackDidFinishNotification  
                                               object:self.moviePlayerController];  


    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(moviePlaybackStateChanged:)  
                                                 name:MPMoviePlayerPlaybackStateDidChangeNotification  
                                               object:self.moviePlayerController];  

    [self.view addSubview:self.moviePlayerController.view];

    [self.moviePlayerController prepareToPlay];
    [self.moviePlayerController play];
}
4

1 に答える 1

2

@Till のように:MoviePlayerControllerプロパティをに変更するuseApplicationAudioSession=TRUEと、問題が解決します。オーディオ再生は無音です。

于 2012-07-17T21:12:45.937 に答える