ページ 11

Dxライブラリ 1秒ごとに音

Posted: 2021年2月09日(火) 18:46
by シュン
DXライブラリにてandroidアプリを制作しようとしていて
以下のコードで5秒間の間、1秒ごとに短い音を鳴らしたいのですが

StartTime = GetNowCount();
PosX = 10000;
while (GetNowCount() - StartTime < 5000) {
if((GetNowCount() - StartTime)%1000 ==0){
PlaySoundMem( SHandle , DX_PLAYTYPE_BACK ) ;
}

最初の1回(GetNowCount() - StartTime==0???)は鳴れどそこから先は音が鳴りません。
どのように改善すればよいのでしょうか?

Re: Dxライブラリ 1秒ごとに音

Posted: 2021年2月09日(火) 19:21
by usao
そのループがどれだけの勢いで回るのかわからないけども,
==0 ってのはタイミングがシビアすぎるのでは?

経過時間(GetNowCount() - StartTime)が1000以上だったら音を鳴らして,StartTimeの値を現在時刻に更新してやる

とかなんとかすればどうでしょう?

Re: Dxライブラリ 1秒ごとに音

Posted: 2021年2月09日(火) 19:32
by シュン
なるほどです(笑)
プログラムだってシビアなことは難しいものなのですね。。
多分それが原因なんだと思います。そのように変えてみます。ありがとうございました!!

Re: Dxライブラリ 1秒ごとに音

Posted: 2021年2月13日(土) 21:22
by ぷぷぷジューシー
*c言語には自信ありません。
Dxライブラリーではないのですが、
私のやり方では1秒ごとに音の機能をunistdライブラリーのsleep関数で使ってスリープしながら行います。

サンプルコード
#include <unistd.h>

int main(void)
{
sleep(3);
}

下の記事を参考になると思います。
https://linuxjm.osdn.jp/html/LDP_man-pa ... eep.3.html