4

私はアプリに取り組んでいます。アプリでタイマーを設定しました。その後、バックグラウンドになり、時間が終わったらバックグラウンドで音楽を再生したいのですが、音楽が再生されませんか?

4

3 に答える 3

3

ios-sdk_background-audioを参照してください。あなたはとても役に立ちます。幸運を

于 2012-08-07T09:53:55.227 に答える
3

このタイマーコードを使用してタイマーを設定します

UIBackgroundTaskIdentifier bgTask =0;
UIApplication  *app = [UIApplication sharedApplication];
bgTask = [app beginBackgroundTaskWithExpirationHandler:^{
    [app endBackgroundTask:bgTask]; 
}];

 self.secondsTimer = [NSTimer 
                         scheduledTimerWithTimeInterval:1 
                         target:self 
                         selector:@selector(timerFireMethod:) 
                         userInfo:nil 
                         repeats:NO];

火の方法-- (void) timerFireMethod:(NSTimer *) theTimer {}

この火の方法では、メディアファイルを再生するために以下のコードを使用します-

NSURL *url = [NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource:@"tujhbinjena" ofType:@"mp3"]];

[[UIApplication sharedApplication] beginReceivingRemoteControlEvents];

NSError *error;
audioPlayer = [[AVAudioPlayer alloc]
               initWithContentsOfURL:url
               error:&error];
audioPlayer.delegate=self;
audioPlayer.volume=1.0;
if (error)
{
    NSLog(@"Error in audioPlayer: %@", 
          [error localizedDescription]);
} else {
    audioPlayer.delegate = self;
    [audioPlayer prepareToPlay];
    [audioPlayer play]
}`  

[自分がFirstResponderになる]; [[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryPlayback エラー:nil]; [[AVAudioSession sharedInstance] setActive: はい エラー: nil];

- (BOOL)canBecomeFirstResponder {
    return YES;
}

ViewDidUnload では、次の行を実行する必要があります

[[UIApplication sharedApplication] endReceivingRemoteControlEvents];
[self resignFirstResponder];

に従って AVAudioPlayerDelegateデリゲート メソッドを処理する必要があり、バックグラウンドでオーディオを再生するには、 Info.plistに 1 つのパラメーターを追加する必要があります。これは「必須のバックグラウンド モード」であり、このキーの値は「アプリがオーディオを再生します」です。ご不明な点がございましたらお知らせください。

于 2012-08-07T10:16:39.693 に答える
1

この関数には、次のメソッドを使用できます:--

 -(void)notificationSchedue

   {

  NSCalendar *calendar = [NSCalendar autoupdatingCurrentCalendar];

//---------remainingTime NSUserDefaults には将来の日付が含まれています--------//

   NSString *datevalueremaining= [[NSUserDefaults   standardUserDefaults]valueForKey:@"remainingTime"];


   NSDateFormatter *dateFormat = [[[NSDateFormatter alloc] init] autorelease];
   [dateFormat setDateFormat:@"dd/MM/yyyy HH:mm:ss"];

   NSDate *dateremaining=[dateFormat dateFromString:datevalueremaining];


   NSDate *pickerDate = dateremaining;
NSDateComponents *dateComponents = [calendar components:( NSYearCalendarUnit | NSMonthCalendarUnit |  NSDayCalendarUnit ) 
                                               fromDate:pickerDate];
NSDateComponents *timeComponents = [calendar components:( NSHourCalendarUnit | NSMinuteCalendarUnit | NSSecondCalendarUnit ) 
                                                fromDate:pickerDate];

// Set up the fire time
 NSDateComponents *dateComps = [[NSDateComponents alloc] init];

  [dateComps setDay:[dateComponents day]];

  [dateComps setMonth:[dateComponents month]];

  [dateComps setYear:[dateComponents year]];
  [dateComps setHour:[timeComponents hour]];

  [dateComps setMinute:[timeComponents minute]];
[dateComps setSecond:[timeComponents second]];
   NSDate *itemDate = [calendar dateFromComponents:dateComps];
   [dateComps release];

  if (localNotif)
  { 
     [[UIApplication sharedApplication] cancelLocalNotification:localNotif];
     [localNotif release];
   }
  localNotif = [[UILocalNotification alloc] init];
  if (localNotif == nil)
    return;

  localNotif.fireDate = itemDate;

  localNotif.timeZone = [NSTimeZone defaultTimeZone];


  localNotif.alertBody = @"Your Time is Over";

  localNotif.alertAction = @"View";



 NSString *stringvalue=[[NSUserDefaults standardUserDefaults]valueForKey:@"goodNight"];

//-----音楽は 30 秒以下にする必要があります---//

   localNotif.soundName=@"s1.mp3";

    NSDictionary *infoDict = [NSDictionary dictionaryWithObject:@"someValue" forKey:@"someKey"];

 localNotif.userInfo = infoDict;

 [[UIApplication sharedApplication] scheduleLocalNotification:localNotif];

 }
于 2012-08-07T09:51:21.073 に答える