« 音がでないなぁ その2 | トップページ | 音が…まず、タイマーを追加 »

2014年4月 9日 (水)

音がでないなぁ その3

バッファアンダーランでございます。#久しぶりにソースコードを眺めました

Nokiaのエンジニアさんが回答しています。

http://comments.gmane.org/gmane.comp.lib.qt.general/32710

20ms~40msのタイマーを使って、定期的に再生用バッファを満たすようにすればよい、とのことらしいです。

ネットワーク経由で、細々とPCMデータが送られてくるので、それをバッファリングしておき、タイマーで定期的に起動した関数内部で再生用のバッファの空きを調べて、チャンク単位で書き込んでください、と。

FPSが気になっていましたが、これはサーバに依存するので、そんなに改善できるわけではなさそうですね。
ログでは 8 FPS…大体 10 FPS前後っぽいです。無線LAN 回線速度70Mbpsくらいの場合ですが。

[現在のログ出力]

Boot : QDateTime("2014-04-08 13:32:40.073 JST Qt::LocalTime")
Assertion SUCCESS : brynhildr.cpp : LINE : 212
[control] Connected for control.
[graphics] Connected for graphics.
[sound] Connected for sound.
[sound] sample rate -> 48000
[sound] stop : IdleState
[sound] start
[sound] output: bytesFree(): 38400
[sound] output: periodSize(): 7680
[sound] output: recievedSize: 5632
[sound] output: totalRecievedSize: 5632
[sound] stop : ActiveState
[sound] stop : IdleState
[sound] sample rate -> 48000
[sound] output: bytesFree(): 38400
[sound] output: periodSize(): 7680
[sound] output: recievedSize: 5632
[sound] output: totalRecievedSize: 5632
[sound] stop : ActiveState
[sound] stop : IdleState
[sound] sample rate -> 48000
[sound] output: bytesFree(): 38400
[sound] output: periodSize(): 7680
[sound] output: recievedSize: 5888
[sound] output: totalRecievedSize: 5888
[sound] stop : ActiveState

   :
   :

[sound] output: bytesFree(): 23040
[sound] output: periodSize(): 7680
[sound] output: recievedSize: 7680
[sound] output: totalRecievedSize: 7680
[control] close().
[control] closeConnectionByServer_control().
[graphics] close().
[graphics] closeConnectionByServer_graphics().
[sound] close().
[sound] : closeConnectionByServer_sound().
Shutdown : QDateTime("2014-04-08 13:32:50.485 JST Qt::LocalTime")
Total Frame Counter : 80
FPS : 8 fps

« 音がでないなぁ その2 | トップページ | 音が…まず、タイマーを追加 »

コメント

コメントを書く

コメントは記事投稿者が公開するまで表示されません。

(ウェブ上には掲載しません)

トラックバック


この記事へのトラックバック一覧です: 音がでないなぁ その3:

« 音がでないなぁ その2 | トップページ | 音が…まず、タイマーを追加 »