小编tab*_*ber的帖子

使用AVAudioPlayer检测iPhone的响铃/静音/静音开关不起作用?

我尝试使用这些方法试图检测Ring/Silent开关是否处于活动状态:

如何以编程方式感知iPhone静音开关?

AVAudioSession类别不能用作文档规定

但是在我的iPhone 4上,"状态"值始终是"扬声器"(并且CFStringGetLength(状态)返回的长度值始终为7).有没有人成功使用过这种方法?如果是这样,关于什么样的设备和SDK版本?

我这样称呼它:


- (BOOL)deviceIsSilenced {
    CFStringRef state;
    UInt32 propertySize = sizeof(CFStringRef);
    OSStatus audioStatus = AudioSessionGetProperty(kAudioSessionProperty_AudioRoute, &propertySize, &state);
    if (audioStatus == kAudioSessionNoError) {
        NSLog(@"audio route: %@", state) // "Speaker" regardless of silent switch setting, but "Headphone" when my headphones are plugged in
        return (CFStringGetLength(state) <= 0);
    }
    return NO;
}

-(BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {

    AVAudioSession *audioSession = [AVAudioSession sharedInstance];
    audioSession.delegate = self;
    [audioSession setCategory:AVAudioSessionCategoryAmbient error:nil];
    [audioSession setActive:YES error:nil];
    NSLog(@"muted? %i", [self deviceIsSilenced]);
    ...
}
Run Code Online (Sandbox Code Playgroud)

我想当手机上的物理开关被切换时,可能会触发其他一些(更准确的)kAudioSessionProperty事件.有人有主意吗?

顺便说一句,我正在使用AVAudioSessionCategoryAmbient类别和我的[AVAudioSession …

iphone avaudioplayer iphone-sdk-3.0 ios4 avaudiosession

31
推荐指数
3
解决办法
3万
查看次数

ALAssetsLibrary assetForURL:对于iOS 8.1中"我的照片流"中的照片,总是返回nil

此代码在iOS 7中运行良好,但在iOS 8.1中,位于"我的照片流"专辑中的所有资源都不在结果块中.(未调用failureBlock.)常规专辑和共享专辑可以正常工作.

我尝试了接受的答案:尝试从assetForURL内部分配__block ALAsset时出错:resultBlock:

也就是说,我持有对ALAssetsLibrary对象的引用,监听ALAssetsLibraryChangedNotification事件(这不会发生顺便,但是很好.)我确保我的应用程序有权访问照片,我在wi-fi上,我在tableView中看到照片的缩略图很好.只是当我尝试加载它们时,assetForURL:它们总是为零.

// example URL: assets-library://asset/asset.JPG?id=1ECB69B9-DC7A-45A7-B135-F43317D3412C&ext=JPG
[self.library assetForURL:[NSURL URLWithString:url] resultBlock:^(ALAsset *asset) {
    NSLog(@"Asset: %@", asset); // nil :(
} failureBlock:^(NSError *error) {
    NSLog(@"Failure, wahhh!");
}];
Run Code Online (Sandbox Code Playgroud)

还有其他人看到这个问题吗?

ios alasset alassetslibrary ios8.1

25
推荐指数
1
解决办法
1万
查看次数

异步.js文件加载语法

我注意到,异步加载js文件似乎有一些稍微不同的语法,我想知道两者之间是否存在任何差异,或者它们两者的功能是否相同.我猜它们的工作方式相同,但只是想确保一种方法由于某种原因并不比另一种更好.:)

方法一

(function() {
    var d=document,
    h=d.getElementsByTagName('head')[0],
    s=d.createElement('script');
    s.type='text/javascript';
    s.src='/js/myfile.js';
    h.appendChild(s);
})(); /* note ending parenthesis and curly brace */
Run Code Online (Sandbox Code Playgroud)


方法二(在Facebook的代码中看到这个)

(function() {
    var d=document,
    h=d.getElementsByTagName('head')[0],
    s=d.createElement('script');
    s.type='text/javascript';
    s.async=true;
    s.src='/js/myfile.js';
    h.appendChild(s);
}()); /* note ending parenthesis and curly brace */
Run Code Online (Sandbox Code Playgroud)

javascript asynchronous

16
推荐指数
1
解决办法
8523
查看次数

异步加载js文件和其他依赖的js文件

我正在寻找一种干净的方式来异步加载以下类型的javascript文件:一个"核心"js文件(嗯,我只是叫它,哦,我不知道,"jquery!"哈哈),x个js依赖于正在加载的"核心"js文件的文件,以及y个其他不相关的js文件.我有几个关于如何去做的想法,但不知道最好的方法是什么.我想避免在文档正文中加载脚本.

因此,例如,我希望以下4个javascript文件异步加载,适当命名:


/js/my-contact-page-js-functions.js // unrelated/independent script
/js/jquery-1.3.2.min.js // the "core" script
/js/jquery.color.min.js // dependent on jquery being loaded
http://thirdparty.com/js/third-party-tracking-script.js // another unrelated/independent script
Run Code Online (Sandbox Code Playgroud)

但这不起作用,因为它不能保证在颜色插件之前加载jQuery ...


(function() {
    var a=[
      '/js/my-contact-page-functions.js',
      '/js/jquery-1.4.2.min.js',
      '/js/jquery.color.js',
      'http://cdn.thirdparty.com/third-party-tracking-script.js',
    ],
    d=document,
    h=d.getElementsByTagName('head')[0],
    s,
    i,
    l=a.length;
    for(i=0;i<l;i++){
        s=d.createElement('script');
        s.type='text/javascript';
        s.async=true;
        s.src=a[i];
        h.appendChild(s);
    }
})();
Run Code Online (Sandbox Code Playgroud)

几乎不可能异步加载jquery和颜色插件?(因为颜色插件需要首先加载jQuery.)

我考虑的第一种方法是将颜色插件脚本和jQuery源组合到一个文件中.

然后我的另一个想法是加载颜色插件,如下所示:


$(window).ready(function() {
    $.getScript("/js/jquery.color.js");
});
Run Code Online (Sandbox Code Playgroud)

任何人都对你如何做到这一点有任何想法?谢谢!

javascript jquery asynchronous jquery-plugins labjs

14
推荐指数
2
解决办法
1万
查看次数

MPMoviePlayerController - 检测按下Next/Prev按钮

我正在使用MPMoviePlayerController,我需要检测按下Next/Prev按钮.我尝试了几件事,但似乎都没有.

这是我尝试过的:

  • 遥控事件
-(void) viewWillAppear:(BOOL)animated
{
    [super viewWillAppear:animated];
    [[UIApplication sharedApplication] beginReceivingRemoteControlEvents];
    [self becomeFirstResponder];
}  
-(void) viewWillDisappear:(BOOL)animated
{
    [[UIApplication sharedApplication] endReceivingRemoteControlEvents];
    [self resignFirstResponder];
    [super viewWillDisappear:animated];
}  
-(BOOL)canBecomeFirstResponder
{
    return YES;
}  
-(void)remoteControlReceivedWithEvent:(UIEvent *)receivedEvent
{
    // stuff
}
Run Code Online (Sandbox Code Playgroud)

问题是remoteControlReceivedWithEvent方法永远不会被调用.我已经读过,这在iOS版本高于6时无效 - 我正在iOS 7上工作

  • 通知

我尝试使用MPMoviePlayerPlaybackStateDidChangeNotification并检查MPMoviePlaybackStateSeekingForward或者MPMoviePlaybackStateSeekingBackward- 不幸的是,拖动播放栏时设置了这些播放状态,而不是按下"下一个/上一个"按钮时.

有任何想法吗?

mpmovieplayercontroller mpmovieplayer ios ios8

11
推荐指数
1
解决办法
2283
查看次数

将新创建的dom元素添加到空的jQuery对象中

为什么这不适用于jQuery 1.4.2?


var $list = $([]);
for(var i=0; i<50; i++) {
    $list.add( $('<div/>', { id: 'jake', class: 'test' }).data('test', { hi: 'hello' }) );
}
alert($list.size()); // 0
Run Code Online (Sandbox Code Playgroud)

谢谢!

javascript arrays jquery object

6
推荐指数
2
解决办法
3002
查看次数

如何告诉iOS设备停止记住/忘记特定应用程序的位置服务首选项

我想测试关于位置服务的"第一次"应用安装的行为.问题是,我的iPhone 4设置应用程序"记住"我的应用程序的位置服务首选项,即使在我卸载应用程序并重新启动手机之后.

这是我试过的:

打开Settings.app - 请注意我的应用程序当前服务当前已关闭卸载应用程序电源循环电话打开Settings.app - 看到应用程序不在列表中构建/运行我的应用程序

然后我在尝试检查位置服务时收到"一般错误":

Error Domain=kCLErrorDomain Code=1 "The operation couldn’t be completed. (kCLErrorDomain error 1.)

所以我回到了Settings.app,看到我的应用程序现在在那里,关闭了.

我相信错误代码1是kCLErrorDenied,对吗?

有谁知道测试作为"新鲜"应用程序安装的方法?我宁愿不重新安装操作系统,也不必每次都购买新设备.:)

谢谢!

更新: 此外,正如我在下面的评论中所述,可以通过转到Settings.app - >常规 - >重置(在底部的方式)重置所有位置警告对话框(对于所有应用程序) - >重置位置警告

settings core-location cllocationmanager ios4 ios

6
推荐指数
2
解决办法
2115
查看次数

iOS中的NSFileSystemFileNumber总是独一无二的吗?

使用attributesOfItemAtPath:error:时,NSFileSystemFileNumber始终保证对设备是唯一的吗?

例如,我有一个带有某个NSFileSystemFileNumber的文件,但几天后我删除了这个文件.如果我稍后创建另一个文件,这个新文件是否可以重用另一个文件的NSFileSystemFileNumber,或者NSFileSystemFileNumber是否总是唯一的?

谢谢!

iphone attributes objective-c nsfilemanager ios4

4
推荐指数
1
解决办法
1100
查看次数

将OpenCV的findHomography透视矩阵转换为iOS'CATransform3D

我想从OpenCV findHomography函数返回透视变换矩阵并将其转换(在C++或Objective-C中)到iOS' CATransform3D.我希望它们尽可能地准确地再现核心图形方面的"扭曲"效果.示例代码真的很感激!

来自iOS'CATransform3D.h:

/* Homogeneous three-dimensional transforms. */

struct CATransform3D
{
    CGFloat m11, m12, m13, m14;
    CGFloat m21, m22, m23, m24;
    CGFloat m31, m32, m33, m34;
    CGFloat m41, m42, m43, m44;
};
Run Code Online (Sandbox Code Playgroud)

类似的问题:

使用Core Graphics应用单应矩阵

将opencv仿射矩阵转换为CGAffineTransform

opencv matrix perspective catransform3d ios

4
推荐指数
1
解决办法
1841
查看次数

GROUP_CONCAT和DISTINCT很棒,但我如何摆脱这些仍然存在的重复?

我有一个像这样设置的mysql表:

id   uid   keywords
--   ---   ---
1    20    corporate
2    20    corporate,business,strategy
3    20    corporate,bowser
4    20    flowers
5    20    battleship,corporate,dungeon

我希望我的输出看起来像是:

20    corporate,business,strategy,bowser,flowers,battleship,dungeon

但我最接近的是:

SELECT DISTINCT uid, GROUP_CONCAT(DISTINCT keywords ORDER BY keywords DESC) AS keywords
 FROM mytable
 WHERE uid !=0
 GROUP BY uid

哪个输出:

20    corporate,corporate,business,strategy,corporate,bowser,flowers,battleship,corporate,dungeon

有没有人有办法解决吗?非常感谢提前!

mysql database duplicates group-concat

2
推荐指数
1
解决办法
3449
查看次数