zoukankan      html  css  js  c++  java
  • iOS后台运行播放无声音频 测试可行

    如果打回来了,就自认倒霉吧

    制作无声音频。


    @interface AppDelegate ()

    {

    NSInteger count;

    }

    @property(strong, nonatomic)NSTimer *mTimer;

    @property(assign, nonatomic)UIBackgroundTaskIdentifier backIden;

    - (void)applicationDidEnterBackground:(UIApplication *)application {

    _mTimer = [NSTimer scheduledTimerWithTimeInterval:1 target:self selector:@selector(countAction) userInfo:nil repeats:YES];

    [[NSRunLoop currentRunLoop] addTimer:_mTimer forMode:NSRunLoopCommonModes];

    [self beginTask];

    }

    //计时

    -(void)countAction{

    NSLog(@"%li",count++);

    }

    //申请后台

    -(void)beginTask

    {

    NSLog(@"begin=============");

    _backIden = [[UIApplication sharedApplication] beginBackgroundTaskWithExpirationHandler:^{

    NSLog(@"将要挂起=============");

    [self endBack];

    }];

    }

    //注销后台

    -(void)endBack

    {

    NSLog(@"end=============");

    [[UIApplication sharedApplication] endBackgroundTask:_backIden];

    _backIden = UIBackgroundTaskInvalid;

    }

    - (void)applicationWillEnterForeground:(UIApplication *)application {

    [self endBack];

    }


    #import <AVFoundation/AVFoundation.h>

    @property(strong, nonatomic)AVAudioPlayer *mPlayer;

    @property(assign, nonatomic)CGFloat mCount;

    - (void)viewDidLoad {

    [super viewDidLoad];

    _mCount = 0;

    NSTimer *timer = [NSTimer scheduledTimerWithTimeInterval:10 target:self selector:@selector(countTime) userInfo:nil repeats:YES];

    [[NSRunLoop currentRunLoop] addTimer:timer forMode:NSRunLoopCommonModes];

    }

    -(void)countTime{

    _mCount+=10;

    NSLog(@"%f",_mCount);

    if ([[UIApplication sharedApplication] backgroundTimeRemaining] < 60.) {//当剩余时间小于60时,开如播放音乐,并用这个假前台状态再次申请后台

    NSLog(@"播放%@",[NSThread currentThread]);

    [self playMusic];

    //申请后台

    [[UIApplication sharedApplication] beginBackgroundTaskWithExpirationHandler:^{

    NSLog(@"我要挂起了");

    }];

    }

    }

    -(void)playMusic{

    //1.音频文件的url路径,实际开发中,用无声音乐

    NSURL *url=[[NSBundle mainBundle]URLForResource:@"wusheng.mp3" withExtension:Nil];

    //2.创建播放器(注意:一个AVAudioPlayer只能播放一个url)

    _mPlayer=[[AVAudioPlayer alloc]initWithContentsOfURL:url error:Nil];

    //3.缓冲

    [_mPlayer prepareToPlay];

    _mPlayer.numberOfLoops = -1;

    //4.播放

    [_mPlayer play];

    }

  • 相关阅读:
    [原]C++ double 小数精度控制
    C++ double 小数精度控制
    从微软小冰看微软运营手段的转型
    Windows下搭建FTP服务器
    C++ 下使用curl 获取ftp文件
    解决MSF更新证书错误
    mimikaz获取明文密码
    metasploit5配置数据库
    Cobalt Strike几种不常见的上线方式
    Powershell
  • 原文地址:https://www.cnblogs.com/xujiahui/p/9019173.html
Copyright © 2011-2022 走看看