- 締切済み
音楽を流しながら処理を進めるには?
WindowsでC++を書いています。 ただ音楽を流すだけなら PlaySoundでいけると思うんですけど、 音楽をループして他の処理を進めていくにはどうしたらいいのでしょうか。 どなたか教えてください><
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- tukai
- ベストアンサー率14% (2/14)
関連するQ&A
- Perlでイベント処理?
ようやくPerlに慣れてきて、ふと思ったのですが VBではイベントというものがあり、Perl Tkでもキーボード・マウスのイベントの処理ができる みたいですが、クライアントでソケット受信した場合、いつ受信するかわかりませんので ループしていれば良いのですが、ループしている間は、他の実行が何も出来ず効率も悪いなと 思うようになりました。 WindowsのPerl5.6を使っているのですが、ソケット等、イベント処理できる方法はあるのでしょうか?
- ベストアンサー
- Perl
- C# wavファイルの再生について
C#に関しての質問なのでこちらでいいのかわからないのですが、タイトル通りwavファイルの再生についてです。 環境は .NET2003 です。 現在、学校の卒業制作としてC#でゲームの開発を行っているのですが、音楽ファイルの再生の仕方で困っています。 検索してみたところ、playsoundを使用したループ再生には非同期とループを指定すればいい、とありましたが うまく動きませんでした。 そこでThreadを使用しsleepを使うことで擬似的にループ再生をさせているのですが、それだと都合の悪いことが多く別の方法を探しています。 お力になっていただける方がいれば、宜しくお願いします。 ↓は現在のソースから抜き出したものです。 [DllImport("winmm.dll")] private static extern bool PlaySound(string pszSound, int hmod, uint fdwSound); static void Main(){ Thread t1 = new Thread(new ThreadStart(play)); t1.Start(); Thread.Sleep(1000000000); } public static void play(){ PlaySound("daichi.wav", 0, 0x00001 | 0x00008 ); }
- ベストアンサー
- C・C++・C#
- WINAPI ウィンドウの移動中も処理を続けるには
お世話になります。 現在、Windowsでゲームを制作しています。 WinMain()内でウィンドウを作り、 その後ループをさせてゲームを処理させているのですが、 ウィンドウをドラッグして移動している最中、このループ内に処理が入ってきません。 ウィンドウを移動している最中も、ゲームの処理の更新や音声のストリーミングなどを続けたいのですが、 ウィンドウ生成時、ウィンドウプロシージャの処理でこれが実現できるでしょうか? できないとすれば、ウィンドウ移動中にプログラムを走らせ続けるにはどうしたらよいでしょうか? ご存知の方がいらっしゃいましたら、是非ご教授宜しくお願いします。
- ベストアンサー
- C・C++・C#
- 音楽ファイルを平行して再生するにはどうしたら?
XPのVisualStudioでプログラムしています. あるBGMを流しながら効果音のような音楽を流すにはどうしたらいいのでしょうか. 単純に音楽再生ソフトとPlaySoundを並行すると音が鳴らないですよね. どうしたらいいのかわからず悩んでいます>< どなたか教えてください!
- ベストアンサー
- C・C++・C#
- wavの連続再生ってどうやるの?
WindowsでC++のプログラミングをやっています。 wavで3つの音楽ファイルを連続再生させたいのですがどうすればよいのでしょうか?? 1曲を1回再生なら PlaySound("c:\\01.wav",NULL,SND_FILENAME | SND_ASYNC | NULL ); で、できたのですが、3曲連続で再生させようとしても PlaySound("c:\\01.wav",NULL,SND_FILENAME | SND_ASYNC | NULL ); PlaySound("c:\\02.wav",NULL,SND_FILENAME | SND_ASYNC | NULL ); PlaySound("c:\\03.wav",NULL,SND_FILENAME | SND_ASYNC | NULL ); とすると03.wavだけが再生されてしまいます。 実際全部再生されているのでしょうけど前のが全部再生されないうちに次のが再生されてしまっているのだと思います。 01.wavが1曲全部再生してから02.wavを再生させるようにするにはどうすればよいのでしょうか。 どなたかよろしくお願いします><
- ベストアンサー
- C・C++・C#
- ソースに記述することでWindowsMediaPlayerを起動できる?
現在WindowsのVisualStudioでC言語を書いています。 PerlのSystem関数のように、ソースにプログラムを描くことで、コマンドプロンプトで入力するような事ができるでしょうか。 やりたいことは、プログラムを実行しながらWindowsMediaPlayerで指定した曲を再生したいのです。 単に再生するだけであればPlaySoundでいけるでしょうが、再生している間も処理を進め、違う音楽も平行して再生したいのです。 曲が再生できればMediaPlayerじゃなくてもいいのですけど。 どなたかご存知でしたらよろしくお願いします。
- 締切済み
- C・C++・C#
- コマンドプロンプトで繰り返し起動の処理
コマンドプロンプト初心者です。 同じファイルを起動する処理を繰り返し(ループ)させたいのですが、 どのように記述すればよろしいのでしょうか。 例として"C:\Program Files\aaa\bbb.exe"のファイルでご教示願えませんか。 ループの最中に1秒だけ間を置く処理を挟みたいと考えています。 よろしくお願い致します。
- 締切済み
- その他(プログラミング・開発)
- マイクロソフトのバッチ処理について
マイクロソフトのバッチ処理は、MSDOSのころから連綿として続いている機能で、unixのシェルを適用させたものと思います。 記述されているコマンドを上から順番に進めていくということになると思っていますが、ループ化することはできるのでしょうか。 100個のファイルがあって1つ1つナンバリングされていますが、それを一挙に処理するために同じ処理を100行にわたって書くことを行っています。ただし、ファイル名が違うのでそこは変えていますが。 同じことを100回書くのが苦痛なのでperlのようなもので書き出す工夫はしています。バッチがループで回ってループカウンタとファイル名をうまく合わせると2,3行で済むのではないかと思うのですが。こういうことはできないものなのでしょうか。unix, Linuxにいったん渡してそこでシェルスクリプトで処理することは今回はできません。Windows上限定のことなのですが。よろしくお願いします。
- 締切済み
- Windows系OS
- static変数のループ内での処理
以下のc++ソース内で、static int b = 100;という式ですが、 1回目に、ここの処理を通ったときに静的変数が作成されると思います。 2回目のループのときに、ここでまたb=100と初期化されています。 ですが、ループを重ねるごとに、カウントが1増えていきます。 staticなので、これは期待通りの動作だとは思うのですが、なぜそうなるのかがわかりません。 コンパイラなどが、staticが頭に付いたものは、2度目のループ以降はこの行を無視するように しているのでしょうか? もしそうなら、他に暗黙のルール?のようなことが他にもあるのでしょうか? 考えるとさらにc++がわからなくなってきました。 #include <windows.h> #include <iostream> using namespace std; void test(){ int a = 100; cout << a << " " << &a << endl; static int b = 100; cout << b << " " << &b << endl; b++; int * abc = new int [10]; abc[0] = 9999; cout << abc <<" "<< &abc << " " << abc[0] << endl; delete [] abc; } int main(){ while (1){ Sleep(2000); test(); } } 教えてください。 よろしくお願いいたします。
- ベストアンサー
- その他(ソフトウェア)
- 一定時間後にsetIntervalでループ処理を行うにはどうしたらいい
一定時間後にsetIntervalでループ処理を行うにはどうしたらいいのでしょうか。 JavaScriptにwait関数があれば早いのですが、setTimeout()のなかに入れ込むしか思いつきません。 forやwhile等で空ループさせて終了後に実行という方法も考えましたが、CPUに余計な負荷がかかるみたいでこれは避けたいです。 具体的には次のようなことがしたいと思っています。 function(a,b,c){ setTimeout(function(){ setInterval(function(){} ,10 ) },c) しかしこれだと再下段の関数が実行されないようです。またループ処理は可能な限りsetInterval()にさせたいと思っています。クロージャで解決できるんでしょうか。何か良い方法がありましたらお願いします。
- ベストアンサー
- JavaScript