Tag: 铸造

ChromeCast后台video播放支持iOS

我有一个问题,当我的应用程序进入后台chromecast iOS api的GCKSocketclosures,我得到这个错误从api的types -[GCKCastSocket socketDidDisconnect:withError:] socketDidDisconnect:withError: "(null)" 然后如果我将应用程序放到前台,api将自动创build套接字并将播放状态设置为暂停状态。 如果我现在试图再次播放video,它正常播放。 我正在像这样在后台线程上开始播放媒体。 dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_BACKGROUND, 0), ^ { [[CastViewController instance] castMedia:self.media]; }); 即使应用程序转到后台,如何保持播放仍然存在? 这里是从api的日志logging 2014-02-25 17:19:01.388 CastVideos[28470:60b] -[GCKCastSocket disconnect] disconnect 2014-02-25 17:19:01.391 CastVideos[28470:60b] -[GCKCastSocket doTeardownWithError:] doTeardownWithError 2014-02-25 17:19:01.395 CastVideos[28470:60b] -[GCKCastSocket doTeardownWithError:] notifying delegate that socket is disconnected 2014-02-25 17:19:01.399 CastVideos[28470:60b] -[GCKHeartbeatChannel didDisconnect] disconnected – stopping heartbeat timer if necessary […]

在Swift中进行types转换

我正在写一个库,可以从JSONparsing键入的ID。 但是,我发现types化规则有点困惑。 例: class AccountId : NSString { } let json : AnyObject? = "user-1" // Returned by NSJSONSerialization.JSONObjectWithData let s = json as? NSString // Succeeds, s == Some("user-1") let a = json as? AccountId // Fails, a == nil 为什么第一个types转换成功而第二个转换失败呢? NSString有什么神奇的东西,它不会跨越Swift-only类吗? 我正在使用XCode版本6.1(6A1030)(撰写本文时为最新版本)。

与Swift一起使用AudioBufferList

我在Swift中有一个桥接函数,其中一个在C中的参数是AudioBufferList * 。 在Swift中,这会生成一个UnsafePointer<AudioBufferList> 。 我设法通过调用audioData[0]来尊重指针(还有更好的方法吗?)。 但是,我正在苦苦挣扎下面两层: .mBuffers数组和它们的void * / UnsafePointer<()> .mData成员。 在C中,它将是简单的 Float32 *audioData = (Float 32*)abl->mBuffers[0]->mData; output = audioData[sampleNum]… 在Swift中,第一个奇怪的是,它不会让我访问mBuffers的元素,但是当我作为一个属性来访问时,它是非常高兴的。 换句话说,这个工作,甚至有正确的数据(对于我认为的第一个mBuffers成员)… println(abl[0].mBuffers.mNumberChannels) // But .mBuffers should be an []! 其次,让我打印.mData下标,但是值总是() println(abl[0].mBuffers.mData[10]) // Prints '()' 我尝试了各种铸造操作和访问与多个指标,但无济于事…任何想法? 这里是AudioBufferList和AudioBuffer的C和Swift定义,以方便… // C struct AudioBufferList { UInt32 mNumberBuffers; AudioBuffer mBuffers[1]; // this is a variable length array of […]