hey*_*hey 27 avfoundation uiwebview ios html5-audio ios6
美好的一天,
我的应用是一个音乐播放应用程序.我<audio>用Javascript 控制-Tag.到目前为止没有任何问题,播放,暂停,下一个和上一个按钮正在工作.当我在iOS 5中待机时,音乐会继续播放,但自动下一首歌不起作用.当它不处于待机状态时,它可以工作.在iOS 6中,只需按下按钮,音乐就会淡出.
锁定屏幕上的播放/暂停按钮适用于iOS 5,但不适用于iOS 6.
Chr*_*die 73
从iOS 6开始,您必须在创建UIWebView之前将音频会话类别设置为"回放".这就是你所要做的.没有必要使会话处于活动状态.
这也应该用于html视频,因为如果你没有配置会话,当铃声开关关闭时你的视频将被静音.
#import <AVFoundation/AVFoundation.h>
AVAudioSession *audioSession = [AVAudioSession sharedInstance];
BOOL ok;
NSError *setCategoryError = nil;
ok = [audioSession setCategory:AVAudioSessionCategoryPlayback
error:&setCategoryError];
if (!ok) {
NSLog(@"%s setCategoryError=%@", __PRETTY_FUNCTION__, setCategoryError);
}
Run Code Online (Sandbox Code Playgroud)
确保您的目标链接到AVFoundation框架.
如果使用Cordova,您需要修改的文件是 platforms/ios/MyApp/Classes/AppDelegate.m,并且最终看起来像这样:
#import "AppDelegate.h"
#import "MainViewController.h"
#import <AVFoundation/AVFoundation.h>
@implementation AppDelegate
- (BOOL)application:(UIApplication*)application didFinishLaunchingWithOptions:(NSDictionary*)launchOptions
{
AVAudioSession *audioSession = [AVAudioSession sharedInstance];
BOOL ok;
NSError *setCategoryError = nil;
ok = [audioSession setCategory:AVAudioSessionCategoryPlayback error:&setCategoryError];
if (!ok) {
NSLog(@"%s setCategoryError=%@", __PRETTY_FUNCTION__, setCategoryError);
}
self.viewController = [[MainViewController alloc] init];
return [super application:application didFinishLaunchingWithOptions:launchOptions];
}
@end
Run Code Online (Sandbox Code Playgroud)
此外,如评论中所述,您需要链接AVFoundation框架,如以下答案中所述:
open ./platforms/ios/MyApp.xcworkspace/ | 归档时间: |
|
| 查看次数: |
19878 次 |
| 最近记录: |