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];

    }

  • 相关阅读:
    PHP语言参考类型/变量/常量/表达式/运算符/控制结构/函数
    代码的可维护性问题
    null与DBNull转换到String型
    Sqlserver数据库表空间统计
    MS SqlServer中少用但是好用的SQL语句[原创]
    数据库安装没装好,害死人啊
    PHP语言参数类与对象
    PHP,MySQL的安装与配置
    PHP特性
    在NebBean中配置常用插件调试/预览页面/打开项目文件夹/JS代码提示
  • 原文地址:https://www.cnblogs.com/xujiahui/p/9019173.html
Copyright © 2011-2022 走看看