2010/05/20

Flashを使っているとWindowsの音が出なくなる(あとで調べる)

しばらく前から知りあいに勧められてmixiアプリのゲーム系アプリを頻繁に利用し始めたところ、Windowsから音が出なくなりました。「Flashの音が」ではなく、「Windowsの音が」一切でない状態に。Windows XP SP3 + Firefox3.6.3 + Shockwave Flash10.0.42.34

初期症状

Flashゲームを閉じたりSkypeを閉じたりしていると、それ以降エラーポップアップの効果音やWindowsの終了メロディーや開始メロディー、WMPやiTunesの再生も音が出来なくなる現象が発生。動画の画像部分に関しては再生される。

出たり出なかったり、再起動すると直ったりしたので様子見していたら、ある日から完全に出なくなる。

この時はサウンドボードのドライバを削除→Windowsを再起動→勝手にドライバ再インストール開始→再起動、で直りました。

二度目の症状

しばらく問題が発生していなかったものの、再度同じ状態が頻発。ただし再起動すると確実に直る。

体感的にFlashとSkype終了後に現象が発生することが多かったので、Skypeの常駐を(Windows起動時のSkype起動も)やめてGoogleトークに一本化。

これだけでしばらく発生しなくなる。

三度目の症状

頻度は低いものの、再発。

今度の症状は、再起動すると確実に直る。ただし、直るのは再起動後ではなく、Windowsシャットダウン時の終了メロディーの段階で直り、音が出ている。また、iTunes起動時に確実にエラーメッセージが表示される。 もちろんこのメッセージが出ると、iTunesで曲の再生はできません。

いずれかのプロセスがサウンドボードの機能を掴んだまま放さないのかと思い、Process Explorerで観察しながら、一つ一つkillしていく事に。kill→iTunes起動でエラーが出るか確認、という泥臭い作業を繰り返しました。

常駐アプリが軒のみ終了し、K7系(ウィルスセキュリティZERO)のプロセスに差し掛かったので、

  1. 念のためネットワークを切断。
  2. IE8でGoogleを開いて404になることを確認。
  3. IE8を終了し、K7系をkill、

しようとした所で、「本当にkillしますか?」の警告ポップアップ時に効果音が再生される。iTunesを起動したところ、エラーメッセージが出ず、再生されました。

  • IEの起動(常駐ランチャーを既にkillしていたので、たまたまスタートメニューから立ち上げた)
  • IEの終了
  • ネットワークの切断

のいずれかで回復した事になります。次の再発後に順番を変えてテストしてみました。

  1. IEを起動→iTunesは起動時エラー
  2. 404ページを表示→iTunesは起動時エラー
  3. IEを終了→iTunesは起動時エラー
  4. 無線LANアダプタを無効にしネット接続を切断→iTunesが正常起動

キーはネットワークの切断だった様です。Windowsシャットダウン時は、終了メロディー再生前にネットワーク系が終了しているので、結果的に直っていた模様。

予想

ネットの切断で回復した、という点で心当たりは、

  • mixiアプリのFlashゲームをしていると、よくステータスバーで「xxxx(サーバ)の応答を待っています」のまま止まっている通信があること。
  • 二回目の発生時に、よく利用するゲームのサーバ負荷が顕著になり、「重い」「巻き戻る」という苦情が増えた事。
  • 三回目の発生時に、これまで無音だったゲームに効果音・BGMが付加されたこと。

などが思い当たります。これらを総合すると、

  1. 投げっぱなしで止まっているリクエストがある
  2. それにより、Flashゲームを終了後もゾンビプロセスが残る
  3. ゾンビプロセスが、サウンド機能を掴んでいる
  4. ネットワークを切断することで、ゾンビプロセスがネットワーク系の例外処理等により終了する

のではないかなと妄想したんですが、これ以降再発していないので、現在調査が進まず。