博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
mp3文件后台播放问题,很久都找不到原因
阅读量:5738 次
发布时间:2019-06-18

本文共 2027 字,大约阅读时间需要 6 分钟。

感谢大家关注,自己找到问题的原因了。

虚拟器不支持按下"Home"后继续播放,真机Ok!
在按下设备的 “home”键后,程序在后台运行,希望继续播放乐曲。
各位老大帮看看我哪里做错了?
或缺少什么代码?谢谢。
我已经进行了如下设置:
在程序启动时
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { 
// Override point for customization after application launch.
//后台运行音乐的尝试
UIDevice* device = [UIDevice currentDevice];
BOOL backgroundSupported = NO;
if ([device respondsToSelector:@selector(isMultitaskingSupported)])
backgroundSupported = device.multitaskingSupported;
NSLog(@\"backgroundSupported[%@]\",backgroundSupported ? @\"YES\" : @\"NO\");
[[AVAudioSession sharedInstance] setDelegate:self];
NSError *audioSessionError = nil;
[[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryPlayback error:&audioSessionError];
if (audioSessionError)
NSLog(@\"Error setting audio category: %@\", [audioSessionError localizedDescription]);
[[AVAudioSession sharedInstance] setActive:YES error:&audioSessionError];
if (audioSessionError)
NSLog(@\"Error setting audio active: %@\", [audioSessionError localizedDescription]);
按下home键的代码
- (void) applicationDidEnterBackground:(UIApplication *)application
{
//后台运行的尝试
UIApplication *app = [UIApplication sharedApplication];
bgTask = [app beginBackgroundTaskWithExpirationHandler:^{
[app endBackgroundTask:bgTask];
bgTask = UIBackgroundTaskInvalid;
}];
// Start the long-running task and return immediately.
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
// Do the work associated with the task.
[app endBackgroundTask:bgTask];
bgTask = UIBackgroundTaskInvalid;
});
}
Info.plist局部内容:
<key>UIBackgroundModes</key>
<array>
<string>audio</string>
</array>
播放乐曲调用:
NSError *_err;
AVAudioPlayer *_player;
NSString *file = [[NSString alloc ] initWithFormat:@\"/Users/hanmj/Hanmjmusic/halo.mp3\"];
_player = [ [AVAudioPlayer alloc] initWithContentsOfURL:
[NSURL fileURLWithPath:file ] error:&_err ];
[file release];
_player.volume = 1;
[_player play];

  •  

转载于:https://www.cnblogs.com/pengyingh/articles/2382211.html

你可能感兴趣的文章
添加虚拟子网
查看>>
Ubuntu 12.04 root用户登录设置
查看>>
存储过程点滴
查看>>
Maven编译跳过test的设置
查看>>
[LeetCode]22.Generate Parentheses
查看>>
计算A/B Test需要的样本量
查看>>
二叉树前序中序后序遍历的非递归方法
查看>>
mysql 行转列列转行
查看>>
《设计模式系列》---桥接模式
查看>>
[Unity3d]Shader 着色器 学习前了解知识
查看>>
Linux中文件颜色所代表的属性和颜色
查看>>
Redrain duilib中事件委托存在的问题
查看>>
43、我的C#学习笔记9
查看>>
网站建表实践及优化
查看>>
字符串的简单操作
查看>>
C#新功能--命名参数与可选参数
查看>>
strtok和strtok_r
查看>>
维辰超市:借助云商城成功转型新零售
查看>>
web.xml中<load-on-start>n</load-on-satrt>作用
查看>>
1061. Dating (20)
查看>>