0

次のコードを使用してiPhoneのサイレントボタンのステータスを検出しましたが、機能することもありましたが、通常は機能しません。私はたくさん検索しましたが、まだ解決策を見つけることができません。

-(void)playWordSoundWithFile:(NSString*)filePath {

audioPlayer = nil;



if (filePath) {

    NSArray *list = [filePath componentsSeparatedByString:@"."];
    if (list && [list isKindOfClass:[NSArray class]] && [list count] > 1) {

        //audioPlayer = [self audioPlayerWithFile:[list objectAtIndex:0] andExtension:@"mp3"];//[list objectAtIndex:1]
        NSString *soundFileIs=[NSString stringWithFormat:@"%@.%@",[list objectAtIndex:0],[list objectAtIndex:1]];
        NSString *paths = [[NSBundle mainBundle] resourcePath];
        NSString *audioFile = [paths stringByAppendingPathComponent:soundFileIs];
        NSData *cdata =[NSData dataWithContentsOfFile:audioFile];

        NSLog(@"Sound file %@",soundFileIs);

        audioPlayer = [[AVAudioPlayer alloc] initWithData:cdata error:nil];
        audioPlayer.delegate = self;

    }
}

if (audioPlayer) {

    [audioPlayer setVolume:1.0];
    playerId = 16;
    [audioPlayer play];

}

}

4

1 に答える 1