Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/35.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在iPhone的锁定屏幕中开始播放音乐_Iphone_Ios_Objective C - Fatal编程技术网

如何在iPhone的锁定屏幕中开始播放音乐

如何在iPhone的锁定屏幕中开始播放音乐,iphone,ios,objective-c,Iphone,Ios,Objective C,我正在使用UILocalNotification提醒用户应用程序未运行,并使用MPMusicPlayerController播放iPod音乐和MPMoviePlayerController播放广播流url 根据苹果文档: 若iphone被锁定,设备接收到本地通知,那个么它将播放30秒的声音,当用户滑动滑块时,它将在前台播放应用程序,出现两种情况 若应用程序未运行,则调用方法 (BOOL)应用程序:(UIApplication*)应用程序使用选项完成启动:(NSDictionary*)启动选项 若

我正在使用
UILocalNotification
提醒用户应用程序未运行,并使用
MPMusicPlayerController
播放iPod音乐和
MPMoviePlayerController
播放广播流url

根据苹果文档: 若iphone被锁定,设备接收到本地通知,那个么它将播放30秒的声音,当用户滑动滑块时,它将在前台播放应用程序,出现两种情况

  • 若应用程序未运行,则调用方法

    (BOOL)应用程序:(UIApplication*)应用程序使用选项完成启动:(NSDictionary*)启动选项

  • 若应用程序已经运行,那个么调用方法-

    (无效)应用程序:(UIApplication*)应用程序收到本地通知:(UILocalNotification*)通知

  • 我可以用这些方法来完成我的任务

    问题: 我需要我的应用程序能够播放我的声音(它可能是iPod音乐或流url,但不是30秒的本地通知声音),当iPhone被锁定,收到本地通知,应用程序在前台运行

    参考应用程序: app store中的“闹钟高清”和其他应用程序也可以通过这种方式正常工作,但当应用程序在后台运行时,它们无法播放闹钟(我不明白为什么?)

    我还尝试:


    定期播放无声音乐可以防止iPhone进入深度睡眠,但如何通知应用程序已收到通知,以便开始播放“实际音乐”?以及如何开始播放新音乐?

    使用
    AVAudioSessionCategoryPlayback
    进行音频会话。查看音频会话编程指南

    @manju很抱歉我迟到了,但它对你有用

     selectedDate = [timePicker date];
    
    它是selectedDate日期对象,此时您将收到通知。
    [NSDate date]
    通过此项,您可以找到当前时间。并通过两种方式找到不同的时间

     NSTimeInterval timeDifference =  [ selectedDate timeIntervalSinceDate:[NSDate date]];   
    
    现在,当您计划通知时,请编写以下代码

     UIApplication *app = [UIApplication sharedApplication];
     UIBackgroundTaskIdentifier bgTask = 0;
    
     NSTimer  *backgroundTimer = [NSTimer scheduledTimerWithTimeInterval:timeDifference    target:self  selector:@selector(backgroundTask) userInfo:nil repeats:NO];
    
    
        bgTask = [app beginBackgroundTaskWithExpirationHandler:^{
        [app endBackgroundTask:bgTask];
        }];
    
        -(void)backgroundTask
        {
            NSLog(@"Here you can play song via player ");
           }
    
    别忘了在app.infolist中添加

    UIC应用背景模式音频
    它将解决您的问题,在设备锁定时播放歌曲。

    我已经看到了此链接,但无法理解如何通知已收到通知的应用程序,因此开始播放musichow以调用(无效)应用程序:(UIApplication*)应用程序收到本地通知:(UILocalNotification*)在锁定屏幕中使用notify方法而不使用滑动滑块我以为您的问题是如何在锁定屏幕中播放音乐?我是iOS新手,抱歉无法澄清我的问题,实际上我想播放音乐(来自ipod库和流媒体url)当应用程序在前台运行且iphone被锁定时,收到UILocalNotificationalarm@DineshPatel我知道我可以使用播放器播放音频,即使我正在使用,但问题是,当屏幕被锁定时,我无法控制我的应用程序,然后如何通知应用程序已收到通知,以便应用程序应开始播放音频。嗨,Manju,你找到解决问题的办法了吗?如果是,请建议我,我该怎么做。-(无效)后台任务在收到通知时调用,即使是在后台,但我编写了一个代码,使用AVAudioplayer播放音频,它开始在前台播放音频,但不在后台播放。我已经在plistMy代码中将“required background mode”设置为“play audio”——(void)backgroundTask{NSLog(@“在这里你可以通过播放器播放歌曲”);NSURL*audioFileLocationURL=[[NSBundle mainBundle]URLForResource:@“HeadspinLong”带扩展名:@“caf”];NSError*error=nil;delegate.audioPlayer=[[AVAudioPlayer alloc]initWithContentsURL:audioFileLocationURL错误:&error];[delegate.audioPlayer setNumberOfLoops:-1];[delegate.audioPlayer prepareToPlay];[delegate.audioPlayer play];}在前台,它打印日志并开始播放音频,但在后台,它只显示日志,不播放audioHi Dinesh,我和manju有相同的问题,日志打印,但音乐不会在后台启动。