OSDN Git Service

新しい説明の訳に差し替え
[sdl2referencejp/sdl2referencejp.git] / SDL_OpenAudioDevice.html
index c5e566c..b3cf891 100644 (file)
 SDL1.2\82Æ\82Ì\8cÝ\8a·\90«\82Ì\82½\82ß, \82±\82Ì\8aÖ\90\94\82ª1\82ð\96ß\82·\82±\82Æ\82Í\82È\82¢.\r
 \82»\82ÌID\82Í\8cÃ\82¢<a href="SDL_OpenAudio.html">SDL_OpenAudio()</a>\82Ì\82½\82ß\82É\97\\96ñ\82³\82ê\82Ä\82¢\82é.\r
 </p>\r
+<h2>\83T\83\93\83v\83\8b\83R\81[\83h</h2>\r
+<p>\r
+<code>\r
+<pre>\r
+SDL_AudioSpec want, have;\r
+SDL_AudioDeviceID dev;\r
+\r
+SDL_memset(&want, 0, sizeof(want)); /* \82Ü\82½\82Í SDL_zero(want); */\r
+want.freq = 48000;\r
+want.format = AUDIO_F32;\r
+want.channels = 2;\r
+want.samples = 4096;\r
+want.callback = MyAudioCallback;  /* \82±\82Ì\8aÖ\90\94\82Í\82Ç\82±\82©\95Ê\82Ì\8fê\8f\8a\82É\8f\91\82­. \8fÚ\8d×\82ÍSDL_AudioSpec\82ð\8eQ\8fÆ\82·\82é\82±\82Æ */\r
+\r
+dev = SDL_OpenAudioDevice(NULL, 0, &amp;want, &amp;have, SDL_AUDIO_ALLOW_FORMAT_CHANGE);\r
+if (dev == 0) {\r
+    SDL_Log("\83I\81[\83f\83B\83I\82ð\8aJ\82¯\82È\82©\82Á\82½: %s", SDL_GetError());\r
+} else {\r
+    if (have.format != want.format) { /* \97v\8b\81\82Æ\95Ï\82í\82Á\82½\82©? */\r
+        SDL_Log("32bit\95\82\93®\8f¬\90\94\93_\82Ì\83I\81[\83f\83B\83I\8c`\8e®\82É\91Î\89\9e\82µ\82Ä\82¢\82È\82¢");\r
+    }\r
+    SDL_PauseAudioDevice(dev, 0); /* \8dÄ\90\82ð\8aJ\8en\82·\82é */\r
+    SDL_Delay(5000); /* \83R\81[\83\8b\83o\83b\83N\82Å\89¹\90º\82ð5\95b\8aÔ\8dÄ\90\82·\82é */\r
+    SDL_CloseAudioDevice(dev);\r
+}\r
+</pre>\r
+</code>\r
+</p>\r
 <h2>\8fÚ\8d×</h2>\r
 <p>\r
-<a href="SDL_OpenAudio.html">SDL_OpenAudio</a>\82Í\91¼\82Ì\8aÖ\90\94\82Æ\88á\82¢, \83f\83o\83C\83XID 1\82Æ\82µ\82Ä\90U\95\91\82¤.\r
+<a href="SDL_OpenAudio.html">SDL_OpenAudio()</a>\82Í\82±\82Ì\8aÖ\90\94\82Æ\82Í\88á\82¢, \8fí\82É\83f\83o\83C\83XID 1\82Æ\82µ\82Ä\90U\95\91\82¤.\r
 \82³\82ç\82É\82±\82Ì\8aÖ\90\94\82Í1\82ð\96ß\82³\82È\82¢\82½\82ß, \8cÃ\82¢\8aÖ\90\94\82Æ\8fÕ\93Ë\82·\82é\82±\82Æ\82Í\82È\82¢.\r
 </p>\r
 <p>\r
-SDL2.0\82Í\82Ü\82¾\98^\89¹\82É\91Î\89\9e\82µ\82Ä\82¢\82È\82¢\82Ì\82Å\92\8d\88Ó\82·\82é\82±\82Æ.\r
+SDL 2.0.5\88È\91O\82ÌSDL 2.0\82Í\98^\89¹\82É\91Î\89\9e\82µ\82Ä\82¢\82È\82¢.\r
 \82æ\82Á\82Ä, iscapture\82ª0\88È\8aO\82Ì\82Æ\82«, \82±\82Ì\8aÖ\90\94\82Í\8e¸\94s\82·\82é.\r
-\8f«\97\88\98^\89¹\82ª\8eÀ\91\95\82³\82ê\82½\82Æ\82«\82Í\82±\82Ì\92l\82ð0\88È\8aO\82É\82Å\82«\82é.\r
+SDL 2.0.5\82©\82ç\82Í\98^\89¹\82ª\8eÀ\91\95\82³\82ê\82±\82Ì\92l\82ð0\88È\8aO\82É\82Å\82«\82é.\r
 </p>\r
 <p>\r
 device\82ðNULL\82É\82·\82é\82Æ, \8dÅ\82à\93K\82µ\82½\83f\83t\83H\83\8b\83g\82ð\97v\8b\81\82µ\82½\82±\82Æ\82É\82È\82é. (\82»\82µ\82Ä\82»\82ê\82Í<a href="SDL_OpenAudio.html">SDL_OpenAudio()</a>\82Ì\91I\91ð\82·\82é\83f\83o\83C\83X\82Æ\93¯\82\82Å\82 \82é.)\r
@@ -49,11 +77,41 @@ device
 \82µ\82©\82µ\88ê\95\94\82Ì\83h\83\89\83C\83o\82Í, \83z\83X\83g\96¼/IP\83A\83h\83\8c\83X, \82Ü\82½\82Í\83f\83B\83X\83N\83I\81[\83f\83B\83I\83h\83\89\83C\83o\82Ì\83t\83@\83C\83\8b\96¼\82Ì\82æ\82¤\82È, \92è\82Ü\82ç\82È\82¢\83h\83\89\83C\83o\8cÅ\97L\82Ì\95\8e\9a\97ñ\82ð\97v\8b\81\82·\82é.\r
 </p>\r
 <p>\r
+\8aJ\82¢\82½\83I\81[\83f\83B\83I\83f\83o\83C\83X\82Í\88ê\8e\9e\92â\8e~\82Ì\8fó\91Ô\82©\82ç\8en\82Ü\82é. \83R\81[\83\8b\83o\83b\83N\8aÖ\90\94\82ð\8cÄ\82Ô\8f\80\94õ\82ª\82Å\82«\82Ä\82¢\82ê\82Î, <a href="SDL_PauseAudioDevice.html"><code>SDL_PauseAudioDevice(devid, 0);</code></a>\82ð\8cÄ\82ñ\82Å\8dÄ\90\82ð\8en\82ß\82é\95K\97v\82ª\82 \82é.\r
+\83I\81[\83f\83B\83I\83f\83o\83C\83X\82Í\97v\8b\81\82³\82ê\82½\89¹\90º\83o\83b\83t\83@\82Ì\92·\82³\82ð\95Ï\8dX\82·\82é\82±\82Æ\82ª\82 \82é.\r
+\83I\81[\83f\83B\83I\83f\83o\83C\83X\82ð\8aJ\82¢\82½\8cã\82É\83\8d\81[\83J\83\8b\82Ì\83~\83L\83V\83\93\83O\83o\83b\83t\83@\82ð\8am\95Û\82·\82é\95K\97v\82ª\82 \82é.\r
+</p>\r
+<p>\r
+\91½\82­\82Ì\8fê\8d\87\83R\81[\83\8b\83o\83b\83N\8aÖ\90\94\82Í\95Ê\82Ì\83X\83\8c\83b\83h\82Å\8eÀ\8ds\82³\82ê\82é.\r
+<a href="SDL_LockAudioDevice.html">SDL_LockAudioDevice()</a>\82Å\8a®\91S\82É\8dÄ\90\82ð\8e~\82ß\82È\82­\82Ä\82à, \83R\81[\83\8b\83o\83b\83N\8aÖ\90\94\82Æ\91¼\82Ì\83X\83\8c\83b\83h\82Ì\8b£\8d\87\8fó\91Ô\82ð\94ð\82¯\82é\82±\82Æ\82ª\82Å\82«\82é.\r
+\8fÚ\8d×\82Í<a href="SDL_AudioSpec.html">SDL_AudioSpec</a>\82ð\8eQ\8fÆ\82·\82é\82±\82Æ.\r
+</p>\r
+<p>\r
+\97v\8b\81\82·\82é\89¹\90º\8c`\8e®\82Í\8e\9f\82Ì\82æ\82¤\82É\90Ý\92è\82·\82é:\r
+<ul>\r
+<li>desired->freq \82É\82Í1\95b\82 \82½\82è\82Ì\83T\83\93\83v\83\8b\90\94(Hz)\82ð\90Ý\92è\82·\82é.\r
+<li>desired->format \82É\82Í\89¹\90º\8c`\8e®(AUDIO_S16SYS\82È\82Ç)\82ð\90Ý\92è\82·\82é.\r
+<li>desired->samples \82É\82Í\89¹\90º\83o\83b\83t\83@\83T\83C\83Y\82ð\83T\83\93\83v\83\8b\83t\83\8c\81[\83\80\90\94(\83X\83e\83\8c\83I\8fo\97Í\82È\82ç\82Î2\83T\83\93\83v\83\8b(\8d\89E)\82Å1\83T\83\93\83v\83\8b\83t\83\8c\81[\83\80)\82ð\90Ý\92è\82·\82é.\r
+\82±\82Ì\90\94\82Í2\82Ì\82×\82«\8fæ\82Å\82 \82é\95K\97v\82ª\82 \82é\82ª, \89¹\90º\83h\83\89\83C\83o\82É\82æ\82Á\82Ä\83n\81[\83h\83E\83F\83A\82É\82æ\82è\93K\82µ\82½\92l\82É\92²\90®\82³\82ê\82é\82±\82Æ\82ª\82 \82é.\r
+\97Ç\82¢\92l\82Í512\82©\82ç8096\82Ü\82Å\82¾\82ª, \83A\83v\83\8a\83P\81[\83V\83\87\83\93\82ÆCPU\82Ì\91¬\93x\82É\82æ\82é.\r
+\92l\82ª\8f¬\82³\82¢\82Æ\92x\82ê\82ª\8f­\82È\82­\82È\82é\82ª, \83A\83v\83\8a\83P\81[\83V\83\87\83\93\82ª\8fd\82¢\8f\88\97\9d\82ð\8ds\82¤\82Æ\83A\83\93\83_\81[\83t\83\8d\81[\82ð\88ø\82«\8bN\82±\82µ\8e\9e\8aÔ\93à\82É\83o\83b\83t\83@\82ð\96\9e\82½\82¹\82È\82¢\82±\82Æ\82ª\82 \82é.\r
+\83T\83\93\83v\83\8b\83t\83\8c\81[\83\80\90\94\82Æ\8e\9e\8aÔ\82Ì\8aÖ\8cW\82Í\8e\9f\82Ì\8e®\82Å\95\\82³\82ê\82é: [\83~\83\8a\95b] = ([\83T\83\93\83v\83\8b\83t\83\8c\81[\83\80\90\94] * 1000) / [\83T\83\93\83v\83\8b\8eü\94g\90\94]\r
+<li>desired->size \82Í\89¹\90º\83o\83b\83t\83@\82Ì\83o\83C\83g\83T\83C\83Y\82¾\82ª, <a href="SDL_OpenAudioDevice.html">SDL_OpenAudioDevice()</a>\82Å\8cv\8eZ\82³\82ê, \82±\82±\82Å\82Í\8f\89\8aú\89»\82³\82ê\82È\82¢.\r
+<li>desired->silence \82Í\96³\89¹\82Ì\92l\82¾\82ª, <a href="SDL_OpenAudioDevice.html">SDL_OpenAudioDevice()</a>\82Å\8cv\8eZ\82³\82ê, \82±\82±\82Å\82Í\8f\89\8aú\89»\82³\82ê\82È\82¢.\r
+<li>desired->callback \82É\82Í\89¹\90º\83f\83o\83C\83X\82ª\90V\82µ\82¢\83f\81[\83^\82Ì\8f\80\94õ\82ª\82Å\82«\82½\82Æ\82«\8cÄ\82Î\82ê\82é\8aÖ\90\94\82ð\90Ý\92è\82·\82é. \r
+\82»\82Ì\8aÖ\90\94\82É\82Í\89¹\90º\83o\83b\83t\83@\82Ì\83|\83C\83\93\83^\82Æ\89¹\90º\83o\83b\83t\83@\82Ì\83o\83C\83g\90\94\82ª\93n\82³\82ê\82é.\r
+\82±\82Ì\8aÖ\90\94\82Í\92Ê\8fí\95Ê\82Ì\83X\83\8c\83b\83h\82Å\8eÀ\8ds\82³\82ê\82é. \82æ\82Á\82Ä, \83f\81[\83^\8d\\91¢\82ð\95Û\8cì\82·\82é\82½\82ß, \83A\83N\83Z\83X\82·\82é\82Æ\82«\82Í<a href="SDL_LockAudioDevice.html">SDL_LockAudioDevice()</a>\82Æ<a href="SDL_UnlockAudioDevice.html">SDL_UnlockAudioDevice()</a>\82ð\8cÄ\82Ô\82×\82«\82Å\82 \82é.\r
+\82±\82Ì\95û\96@\82Ì\91ã\82í\82è\82ÉNULL\83|\83C\83\93\83^\82ð\93n\82µ, <a href="SDL_QueueAudio.html">SDL_QueueAudio()</a>\82ð\92è\8aú\93I\82É\8cÄ\82Ñ, \89¹\90º\82ð\83L\83\85\81[\82É\93ü\82ê\82é(\82Ü\82½\82Í<a href="SDL_DequeueAudio.html">SDL_DequeueAudio()</a>\82ð\92è\8aú\93I\82É\8cÄ\82Ñ, \98^\89¹\83f\83o\83C\83X\82©\82ç\89¹\90º\83T\83\93\83v\83\8b\82ð\93¾\82é)\82±\82Æ\82à\82Å\82«\82é.\r
+<li>desired->userdata \82Í\83R\81[\83\8b\83o\83b\83N\8aÖ\90\94\82Ì\91æ1\88ø\90\94\82É\93n\82³\82ê\82é. NULL\82ð\93n\82·\82Æ, \82±\82Ì\92l\82Í\96³\8e\8b\82³\82ê\82é.\r
+</ul>\r
+</p>\r
+<p>\r
 allowed_changes\82Í\8e\9f\82Ì\83t\83\89\83O\82Ì\98_\97\9d\98a\82Å\82 \82é.\r
 <table border="1" summary="allowed_changes">\r
 <tr><td>SDL_AUDIO_ALLOW_FREQUENCY_CHANGE</td><td>\8eü\94g\90\94\82ð\95Ï\82¦\82é\82±\82Æ\82ð\94F\82ß\82é</td></tr>\r
 <tr><td>SDL_AUDIO_ALLOW_FORMAT_CHANGE</td><td>\8c`\8e®\82ð\95Ï\82¦\82é\82±\82Æ\82ð\94F\82ß\82é</td></tr>\r
 <tr><td>SDL_AUDIO_ALLOW_CHANNELS_CHANGE</td><td>\83`\83\83\83l\83\8b\90\94\82ð\95Ï\82¦\82é\82±\82Æ\82ð\94F\82ß\82é</td></tr>\r
+<tr><td>SDL_AUDIO_ALLOW_SAMPLES_CHANGE</td><td>\83T\83\93\83v\83\8b\83t\83\8c\81[\83\80\90\94\82ð\95Ï\82¦\82é\82±\82Æ\82ð\94F\82ß\82é</td></tr>\r
 <tr><td>SDL_AUDIO_ALLOW_ANY_CHANGE</td><td>\91S\82Ä\82ð\95Ï\82¦\82é\82±\82Æ\82ð\94F\82ß\82é</td></tr>\r
 </table>\r
 \82±\82ê\82ç\82Ì\83t\83\89\83O\82Í, SDL\82ª\8b@\94\\82ð\92ñ\8b\9f\82Å\82«\82È\82¢\82Æ\82«, \82Ç\82Ì\82æ\82¤\82É\90U\95\91\82¤\82©\82ð\8c\88\82ß\82é.\r
@@ -65,16 +123,14 @@ allowed_changes
 \82à\82µ\90Ý\92è\82µ\82Ä\82¢\82È\82¯\82ê\82Î, \83R\81[\83\8b\83o\83b\83N\8aÖ\90\94\82Å\90Ý\92è\82µ\82½32bit\95\82\93®\8f¬\90\94\93_\8c`\8e®\82Ì\83f\81[\83^\82ð, SDL\82Í\83n\81[\83h\83E\83F\83A\82É\91\97\82é\91O\82É16bit\90®\90\94\8c`\8e®\82Ì\83f\81[\83^\82É\95Ï\8a·\82·\82é. \82»\82µ\82Ä, obtained\82Ìformat\83t\83B\81[\83\8b\83h\82Í\97v\8b\81\82Æ\93¯\82\82Å\82 \82é.\r
 </p>\r
 <p>\r
-\83A\83v\83\8a\83P\81[\83V\83\87\83\93\82ª1\82Â\82Ì\93Á\92è\82Ì\8c`\8e®\82µ\82©\88µ\82í\82È\82¢\82Ì\82Å\82 \82ê\82Î, allowed_changes\82ð0\82Æ\82µ\82Ä, SDL\82É\91¼\82Ì\8c`\8e®\82É\95Ï\8a·\82³\82¹\82é\82±\82Æ\82ª\82Å\82«\82é.\r
+\8c\8b\89Ê\93I\82É\90Ý\92è\82³\82ê\82½\89¹\90º\8c`\8e®\82Í, \83n\81[\83h\83E\83F\83A\82É\8b­\82­\88Ë\91\82µ\95Ï\8dX\82³\82ê\82é\89Â\94\\90«\82ª\82 \82é\82ª, obtained\82É\8f\91\82«\8d\9e\82Ü\82ê\82é.\r
 </p>\r
 <p>\r
-\8aJ\82¢\82½\83I\81[\83f\83B\83I\83f\83o\83C\83X\82Í\88ê\8e\9e\92â\8e~\82Ì\8fó\91Ô\82©\82ç\8en\82Ü\82é. \83R\81[\83\8b\83o\83b\83N\8aÖ\90\94\82ð\8cÄ\82Ô\8f\80\94õ\82ª\82Å\82«\82Ä\82¢\82ê\82Î, <a href="SDL_PauseAudioDevice.html"><code>SDL_PauseAudioDevice(devid, 0);</code></a>\82ð\8cÄ\82ñ\82Å\8dÄ\90\82ð\8en\82ß\82é\95K\97v\82ª\82 \82é.\r
-\83I\81[\83f\83B\83I\83f\83o\83C\83X\82Í\97v\8b\81\82³\82ê\82½\89¹\90º\83o\83b\83t\83@\82Ì\92·\82³\82ð\95Ï\8dX\82·\82é\82±\82Æ\82ª\82 \82é.\r
-\83I\81[\83f\83B\83I\83f\83o\83C\83X\82ð\8aJ\82¢\82½\8cã\82É\83\8d\81[\83J\83\8b\82Ì\83~\83L\83V\83\93\83O\83o\83b\83t\83@\82ð\8am\95Û\82·\82é\95K\97v\82ª\82 \82é.\r
+\83A\83v\83\8a\83P\81[\83V\83\87\83\93\82ª1\82Â\82Ì\93Á\92è\82Ì\8c`\8e®\82µ\82©\88µ\82í\82È\82¢\82Ì\82Å\82 \82ê\82Î, allowed_changes\82ð0\82Æ\82µ\82Ä, SDL\82É\91¼\82Ì\8c`\8e®\82É\95Ï\8a·\82³\82¹\82é\82±\82Æ\82ª\82Å\82«\82é.\r
 </p>\r
+<h2>\83o\81[\83W\83\87\83\93</h2>\r
 <p>\r
-\91½\82­\82Ì\8fê\8d\87\83R\81[\83\8b\83o\83b\83N\8aÖ\90\94\82Í\95Ê\82Ì\83X\83\8c\83b\83h\82Å\8eÀ\8ds\82³\82ê\82é.\r
-<a href="SDL_LockAudioDevice.html">SDL_LockAudioDevice()</a>\82Å\8a®\91S\82É\8dÄ\90\82ð\8e~\82ß\82È\82­\82Ä\82à, \83R\81[\83\8b\83o\83b\83N\8aÖ\90\94\82Æ\91¼\82Ì\83X\83\8c\83b\83h\82Ì\8b£\8d\87\8fó\91Ô\82ð\94ð\82¯\82é\82±\82Æ\82ª\82Å\82«\82é.\r
+SDL 2.0.0\88È\8d~\r
 </p>\r
 <h2>\8aÖ\98A\8d\80\96Ú(\8aÖ\90\94)</h2>\r
 <a href="SDL_CloseAudioDevice.html">SDL_CloseAudioDevice</a><br>\r