小编nic*_*ame的帖子

python进程之间的共享内存

我试图想出一种在python进程之间共享内存的方法.基本上存在多个python进程需要能够READ(仅读取)和使用(无突变)的对象.现在这是使用redis + strings + cPickle实现的,但cPickle占用宝贵的CPU时间,所以我不想使用它.我在互联网上看到的大多数python共享内存实现似乎都需要文件和泡菜,这基本上就是我已经在做的,而且正是我想要避免的.

我想知道的是,是否有办法编写类似...基本上是内存中的python对象数据库/服务器和相应的C模块来与数据库连接?

基本上C模块会向服务器请求写入对象的地址,服务器将使用地址进行响应,然后模块将写入对象,并通知服务器具有给定密钥的对象被写入磁盘.指定的位置.然后,当任何进程想要使用给定键检索对象时,他们只会向db请求给定键的内存位置,服务器将响应该位置,并且模块将知道如何在内存中加载该空间.将python对象传回python进程.

这完全是不合理的还是真的很难实施?我在追逐那些不可能的东西吗?欢迎大家提出意见.谢谢你上网.

c python shared-memory

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

CoreLocationManager 从不暂停?

试图让我的应用程序使用更少的电量,它总是在后台跟踪位置,但我希望它自动暂停,以便我可以打开区域监视,并在用户稍微移动时使用它来恢复精确的位置监视。

我已经打开应用程序半小时了,定位服务没有暂停。我认为自从 Apple 在 iOS 13 中更改位置信息以来一直是这种情况?我不太确定。我可以在网上找到的所有文档似乎都非常过时。

非常感谢任何建议,相关代码如下:

init() {
        locationManager = CLLocationManager()
        locationManager.delegate = self
        locationManager.desiredAccuracy = kCLLocationAccuracyBest
        locationManager.distanceFilter = 10
        locationManager.activityType = .fitness
        locationManager.requestAlwaysAuthorization()
        locationManager.allowsBackgroundLocationUpdates = true
        locationManager.pausesLocationUpdatesAutomatically = true
        locationManager.showsBackgroundLocationIndicator = true
        locationManager.startUpdatingLocation()
    }
    func locationManagerDidPauseLocationUpdates(_ manager: CLLocationManager) {
        delegate?.paused(tracker: self)
        print("MT | LOCATION SERVICES PAUSED!") <---- NEVER GETTING CALLED (been running for 40 minutes now, no location updates, still going though?)
        // if not already, start region monitoring

    }
 func locationManager(_ manager: CLLocationManager, didUpdateLocations locations: [CLLocation]) …
Run Code Online (Sandbox Code Playgroud)

core-location ios swift

6
推荐指数
1
解决办法
592
查看次数

单个请求多个异步响应

所以,这就是问题所在.iPhone非常棒,但带宽和延迟是具有服务器端要求的应用程序的严重问题.我最初解决这个问题的计划是对数据位进行多次请求(双关语意外),这就是如何处理大量传入//传出数据的问题.出于很多原因这是一个坏主意,对我来说最明显的是我的糟糕数据库(MySQL)无法很好地处理这个问题.根据我的理解,最好一次性请求大块,特别是如果我要求所有这些都无论如何.

问题是现在我再次等待大量数据通过.我想知道是否有办法基本上向服务器发送一堆ID来从数据库获取,然后该SINGLE请求然后发送许多小响应,每个响应包含有关单个数据库条目的所有信息.订单是无关紧要的,理想情况下,我可以向服务器发送另一个请求,告诉它停止发送给我的东西,因为我有我需要的东西.

我意识到这可能不是一件简单的事情,如果你(真棒)家伙可以指出我正确的方向,这也是不可思议的.

目前的系统是iPhone(Cocoa // Objective-C) - > PHP - > MySQL

非常感谢提前.

iphone networking objective-c httpresponse httprequest

5
推荐指数
1
解决办法
1133
查看次数

无法获取 newPassword 以生成强密码并自动填充

我正在尝试让自动填充工作。具体来说,这些 经历中的任何一个。前者是我更感兴趣的一个,但两个是为了有不止一个例子。

除了生成强密码外,一切正常。

我已经正确配置了我的 AASA,我已经将所有内容切换到 SSL,正确设置了 textContentType,我启用了自动填充提供程序的权利(阅读更多内容后我将其关闭,因为这不是我想要的(相同的结果)) . info.plist 中是否有我遗漏的内容?我正在使用钥匙串库来访问钥匙串?但我不认为是这样。

具体来说,我试图进入这个屏幕

任何关于在哪里挖掘的建议也将不胜感激。在这一点上,我不确定我是否做错了什么,或者 ios12 是新的并且还不能正常工作。

相关代码?(这就是我在“代码”中的全部内容,我是否在其他地方遗漏了什么?)

pwTF.textContentType = .newPassword
pwTF.passwordRules = UITextInputPasswordRules(descriptor: "required: upper; required: lower; required: digit; max-consecutive: 2; minlength: 16;")
Run Code Online (Sandbox Code Playgroud)

security swift ios12

3
推荐指数
1
解决办法
1365
查看次数

AVAssetWriterInput - 捕获音频的视频帧不足

我有一个中等复杂的 AVAssetWriterInput 设置,我可以使用它在录制时翻转相机。基本上运行两个会话,当用户点击翻转相机时,我会断开会话 1 与输出的连接并附加会话 2。

这真的很棒。我可以导出视频并且播放得很好。

现在,我尝试对生成的视频执行更高级的操作,但突然出现了一些问题,特别是导出的 AVAsset 内部的 AVAssetTrack 略有不匹配(始终小于 1 帧)。具体来说,我正在尝试这样做:https://www.raywenderlich.com/6236502-avfoundation-tutorial-adding-overlays-and-animations-to-videos,但很多时候最终都是全黑的帧,有时在视频的头部,有时在视频的尾部,出现一瞬间。时间各不相同,但总是小于一帧(参见下面的日志,1/30或0.033333333s)

我进行了一些来回调试,并设法使用我的录像机录制了一个视频,该视频始终产生尾随黑帧,但使用教程代码我无法创建产生尾随黑帧的视频。我在教程代码中添加了一些类似的日志记录(与下面粘贴的内容相同),我看到增量不超过 2/100 秒。所以最多大约 1 帧的 1/10。有一次甚至是完美的 0。

所以我现在的感觉是,正在发生的事情是我录制视频,两个 assetInput 都开始吞噬数据,然后当我说“停止”时,它们就停止了。视频输入在最后一个完整帧处停止,音频输入也类似。但由于音频输入的采样率比视频高得多,因此它们没有完美同步,最终得到的音频比视频多。这不是问题,直到我用两个轨道合成一个资产,然后合成引擎认为我的意思是“是的,实际上所有轨道都使用 100% 的时间,即使存在不匹配”,这会导致黑屏。

(编辑:这基本上就是发生的事情 - https://blender.stackexchange.com/questions/6268/audio-track-and-video-track-are-not-the-same-length

我认为正确的解决方案是,不要担心构图结构和时间安排并确保一切正常,而是让捕获的音频和视频尽可能匹配。理想情况下为 0,但我对 1/10 帧左右的任何内容都可以。

所以我的问题是:如何使两个 AVAssetWriterInput(一个音频和一个视频)附加到 AVAssetWriter 上更好地排列?某处有设置吗?我是否搞乱了帧速率?我应该将导出的资源修剪为视频轨道的长度吗?停止录制时可以复制最后捕获的帧吗?我可以让输入在不同时间停止 - 基本上让音频先停止,然后等待视频“赶上”,然后停止视频吗?还有别的事吗?我在这里不知所措:|

我的记录

BUFFER | VIdeo SETTINGS: Optional(["AVVideoCompressionPropertiesKey": {
    AllowFrameReordering = 1;
    AllowOpenGOP = 1;
    AverageBitRate = 7651584;
    **ExpectedFrameRate = 30;**
    MaxKeyFrameIntervalDuration = 1;
    MaxQuantizationParameter = 41;
    MinimizeMemoryUsage = 1;
    Priority = 80;
    ProfileLevel = "HEVC_Main_AutoLevel";
    RealTime = …
Run Code Online (Sandbox Code Playgroud)

avfoundation avassetwriter swift avassetwriterinput

3
推荐指数
1
解决办法
597
查看次数

来自 AVAudioFile 的 AVAsset 的持续时间为 0

我正在尝试从麦克风录制音频 + 然后将其与来自多个位置的视频相结合,以创建带有麦克风音频的单个视频。

使用 AVCaptureDevice + AVCaptureSession 有点不稳定,我想进行语音识别,所以我已经转向使用 AVCaptureSession 进行视频捕获,并且我正在尝试使用 AVAudioEngine 进行音频(因为我的理解是它很容易附加一个 SFSpeechRecognizer 到一个 AudioTap)

这是代码:

class AudioCaptureSession {

    var engine = AVAudioEngine()
    var outputFile : AVAudioFile!

    func initAudioEngine() {
        engine.stop()
        engine.reset()
        engine = AVAudioEngine()

        do {
            try AVAudioSession.sharedInstance().setCategory(AVAudioSessionCategoryPlayAndRecord)
            let ioBufferDur = 128.0/44100.0
            try AVAudioSession.sharedInstance().setPreferredIOBufferDuration(ioBufferDur)
        } catch {
            print("AVAudioSession setup error: \(error)")
        }
        let outputPath = NSTemporaryDirectory().appending(kTempAudioFilename)
        let outputFile = URL(fileURLWithPath: outputPath, isDirectory: false)
        if FileManager.default.fileExists(atPath: outputPath) {
            do {
                try FileManager.default.removeItem(at: outputFile)
            } catch {
                print("Filemanager can't delete the …
Run Code Online (Sandbox Code Playgroud)

microphone avfoundation swift

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