Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/108.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
Ios 目标C:如何让AVPlayer在后台继续播放_Ios_Objective C_Swift_Avplayer - Fatal编程技术网

Ios 目标C:如何让AVPlayer在后台继续播放

Ios 目标C:如何让AVPlayer在后台继续播放,ios,objective-c,swift,avplayer,Ios,Objective C,Swift,Avplayer,我知道有很多像我这样的问题,但都不管用 对我来说 我试图在退出应用程序时让AVPlayer继续播放,我实现了以下Singleton类: .h文件: #import <AVFoundation/AVFoundation.h> #import <Foundation/Foundation.h> @interface LiveStreamSingleton : NSObject<AVAudioPlayerDelegate>{ } +(LiveStreamSin

我知道有很多像我这样的问题,但都不管用 对我来说

我试图在退出应用程序时让
AVPlayer
继续播放,我实现了以下
Singleton类

.h文件:

#import <AVFoundation/AVFoundation.h>
#import <Foundation/Foundation.h>

@interface LiveStreamSingleton : NSObject<AVAudioPlayerDelegate>{

}

+(LiveStreamSingleton *)sharedInstance;
-(void)playStream;
-(void)stopStream;
-(bool)status;
@end
我已经设置了
[[UIApplication sharedApplication]beginReceivingRemoteControlEvents]用于在后台播放,但我在我真正的ipad上尝试过,它不起作用


有什么想法吗?

在属性列表(.plist)文件中添加一个名为所需背景模式的键

如下图所示

并在中添加以下代码

目标-C AppDelegate.h

#import <AVFoundation/AVFoundation.h>
#import <AudioToolbox/AudioToolbox.h>
敏捷的
希望有帮助。

Niiice!非常感谢,不过只有一个问题,
[[AVAudioSession sharedInstance]setDelegate:self]
selfDelegate已被弃用,我可以修复此问题吗?@FadiObaji我认为不需要它。你只需要设置活动。删除该行(Y)@FadiObaji Great!:)
#import <AVFoundation/AVFoundation.h>
#import <AudioToolbox/AudioToolbox.h>
[[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryPlayback error:nil];
[[AVAudioSession sharedInstance] setActive:YES error:nil];
[[UIApplication sharedApplication] beginReceivingRemoteControlEvents];
import AVFoundation
import AudioToolbox
class AppDelegate: UIResponder, UIApplicationDelegate
{
    func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool
    {

        do {
            try AVAudioSession.sharedInstance().setCategory(AVAudioSessionCategoryPlayback)
            try AVAudioSession.sharedInstance().setActive(true)
            UIApplication.sharedApplication().beginReceivingRemoteControlEvents()
        }
        catch {

        }
    }
}