質問編集履歴
4
追記
title
CHANGED
File without changes
|
body
CHANGED
@@ -165,4 +165,6 @@
|
|
165
165
|
任意の数の音声データを同時再生させるためには、動的に音声データを追加入力できるような仕組みが必要だと思うのですが、何か良いやりかたがあるのでしょうか?
|
166
166
|
AudioUnitやCoreAudioに詳しい方にお伺いしたいです。
|
167
167
|
|
168
|
-
追記: 質問してからすぐ気がついたのですが、コールバック関数に`UInt32 inBusNumber`という引数があることに気づきました。これで入力ごとに処理を分ければ解決するかもしれません。
|
168
|
+
追記: 質問してからすぐ気がついたのですが、コールバック関数に`UInt32 inBusNumber`という引数があることに気づきました。これで入力ごとに処理を分ければ解決するかもしれません。
|
169
|
+
|
170
|
+
追記2: よく見たらグローバル変数を使わなくても`callbackStruct.inputProcRefCon`とコールバック関数の`void *inRefCon`で音データを送れそうですね・・・コールバック関数に関する理解が足りないみたいです。
|
3
追記
title
CHANGED
File without changes
|
body
CHANGED
@@ -163,4 +163,6 @@
|
|
163
163
|
これは「同時に再生させたいデータの数と同じ数だけコールバック関数を定義する必要がある」という理解でいいのでしょうか?
|
164
164
|
だとすると、例えば100個の音声データを同時に再生させたい場合、あらかじめ100個のコールバック関数を書かなければいけないような気がするのですが・・・これはあまりにも非現実的な方法に思えます。
|
165
165
|
任意の数の音声データを同時再生させるためには、動的に音声データを追加入力できるような仕組みが必要だと思うのですが、何か良いやりかたがあるのでしょうか?
|
166
|
-
AudioUnitやCoreAudioに詳しい方にお伺いしたいです。
|
166
|
+
AudioUnitやCoreAudioに詳しい方にお伺いしたいです。
|
167
|
+
|
168
|
+
追記: 質問してからすぐ気がついたのですが、コールバック関数に`UInt32 inBusNumber`という引数があることに気づきました。これで入力ごとに処理を分ければ解決するかもしれません。
|
2
リンクを設定
title
CHANGED
File without changes
|
body
CHANGED
@@ -1,8 +1,8 @@
|
|
1
1
|
OSX向けのゲームを作っています。
|
2
2
|
ゲーム音の再生にOpenALを利用していたのですが、同時再生できるSourceや一度に生成できるBufferの数に制限があるため、AudioUnitを使うことにしました。
|
3
3
|
以下のサイトなどを参考にしてとりあえず再生まではできたのですが、簡単に同時再生できるようにラッピングしようとしたところで分からない部分が出てきました。
|
4
|
-
http://d.hatena.ne.jp/shu223/20140506/1399406906
|
4
|
+
[http://d.hatena.ne.jp/shu223/20140506/1399406906](http://d.hatena.ne.jp/shu223/20140506/1399406906)
|
5
|
-
http://qiita.com/MJeeeey/items/b09e65cbded0cc3eb193
|
5
|
+
[http://qiita.com/MJeeeey/items/b09e65cbded0cc3eb193](http://qiita.com/MJeeeey/items/b09e65cbded0cc3eb193)
|
6
6
|
|
7
7
|
以下のコードは音声ファイルを読み込み、メモリ上のデータから再生するだけのものです。(エラー処理が不完全ですが...)
|
8
8
|
```lang-objectivec
|
@@ -159,7 +159,7 @@
|
|
159
159
|
のようにしたいです。(あくまでも例です。)
|
160
160
|
|
161
161
|
同時再生したい場合、ミキサーユニットを使うとよさそうなことは分かったのですが、以下のサイトによればミキサーの入力1つ1つに対してコールバック関数やフォーマットを設定する必要があります。
|
162
|
-
http://objective-audio.jp/2009/03/audiounit-multichannelmixer.html
|
162
|
+
[http://objective-audio.jp/2009/03/audiounit-multichannelmixer.html](http://objective-audio.jp/2009/03/audiounit-multichannelmixer.html)
|
163
163
|
これは「同時に再生させたいデータの数と同じ数だけコールバック関数を定義する必要がある」という理解でいいのでしょうか?
|
164
164
|
だとすると、例えば100個の音声データを同時に再生させたい場合、あらかじめ100個のコールバック関数を書かなければいけないような気がするのですが・・・これはあまりにも非現実的な方法に思えます。
|
165
165
|
任意の数の音声データを同時再生させるためには、動的に音声データを追加入力できるような仕組みが必要だと思うのですが、何か良いやりかたがあるのでしょうか?
|
1
追記
title
CHANGED
File without changes
|
body
CHANGED
@@ -4,7 +4,7 @@
|
|
4
4
|
http://d.hatena.ne.jp/shu223/20140506/1399406906
|
5
5
|
http://qiita.com/MJeeeey/items/b09e65cbded0cc3eb193
|
6
6
|
|
7
|
-
以下のコードは音声ファイルを読み込み、メモリ上のデータから再生するだけのものです。
|
7
|
+
以下のコードは音声ファイルを読み込み、メモリ上のデータから再生するだけのものです。(エラー処理が不完全ですが...)
|
8
8
|
```lang-objectivec
|
9
9
|
@import AudioToolbox;
|
10
10
|
|