All Stories

AVAudioEngineでエコキャン実装 (with ManualRendering) その2

前回の続き。 前回の実装では周期的に音が断続的になる不具合がありました。 ManualRecordingでない場合は、この現象が発生していなかったので、どこかでバッファが枯渇しているのでは? と当たりをつけて修正していきます。

AVAudioEngineでエコキャン実装 (with ManualRendering)

iOS13からAVAudioEngineでVoiceProcessingIOを用いたエコーキャンセルがsetVoiceProcessingEnabled(_:)によって簡単にできるようになりました。 とはいえ、iOS13以前のバージョンでもエコーキャンセルをできるようにしたいので、以前のバージョンでも対応する形で実装してみました。

UIKitのisHiddenを二値だと信じてはいけない

先週、なぜかコード的にはおかしくないはずなのに、Viewの表示状態が壊れるという現象に遭遇しました。 どうも調べてみると、isHiddenで代入しても値が反映されないようでした。

iOS13の外観モード(ダークモード)に対応する方法

これは、iOS13から追加される外観モードの対応方法を纏めたものです。現時点ではまだbeta8なので、情報が正しくなくなる可能性があります。 また、まだ対応はしていないので、間違っていたら随時更新するかもしれません。

after_destroyは削除回数と実行回数が一致する訳ではない

例えば投稿Aに対するFavの数を表示しようと思った際に、都度SQLでCOUNTを実行するのは避けたいという時に、Fav数をレコードに書き込む実装をとあるシステムでやっていました。 具体的にはcounter_cultureを使っていました。

PHP ExtensionsをCircleCIで使用する

CircleCIが提供しているPHPイメージに入っていないExtensionsを依存に含めた際に、どうすればいいのか調べても信頼性の低い情報ばかりだったので、やり方を残す。 このやり方はcomposerを使用し、composer.jsonのrequireに依存を記述していることを前提としている。 独自にやる場合はdocker-php-ext-installを実行すればよい。