スポンサード リンク

T.Ishii's Software Library

HTML5 レトロ風ゲーム館

無料ブログはココログ

« もう一週間はかかりそうだが | トップページ | 画像表示も出来た »

音声再生は出来た

今はOSX用Mirror-DTCクライアントのネイティブ版を開発中で、既にサーバーへの接続は確立出来ていたのだが、まだ、音声再生と画像描画は出来ていなかった。なので、今日は、まず、音声再生を出来る様にした。その後、画像描画の作業に入ったのだが、ここで躓いた。

音声再生にはCoreAudioのAPIを使ったのだが、CoreAudioでメモリ上にあるPCMデータを再生するサンプルプログラムは、Appleのサイトにあった。

なので、CoreAudioを使った音声再生処理ルーチンは、上記のルーチンをコピーし、必要部分を修正する事で、比較的簡単に作成出来たのだが、サーバーから送られてくる音声を正しく再生できる事を確認した後、不要部分を削除しても、Xcodeのワーニングは無くならなかった。

このため、そのワーニングを真面目に見てみた所、使われているAPI関数がDeprecatedになっていた訳だ。

つまり、Appleという企業は、このブログでも良く書いているのだが、APIをコロコロと変えるので、自分のサイトにアップしてあるサンプルプログラムでさえ、そのサイクルには追随できず、DeprecatedになっているAPI関数を使ったまま放置されている訳だ。

と、いう事で、作者的には、少しイラッと来たのだが、ネットを色々と検索しつつ、何とか、現在推奨されている筈の処理ルーチンに変更し、Xcodeのワーニングを消す事も出来た。

なので、音声再生については、とりあえず、モード変更等の細かい部分についての作りこみは残っているのだが、一応は行える様になった。

このため、次に、画像描画の作業に移ったのだが、描画にはOpenGLを使う。

で、Cocoaフレームワークでは、OpenGLを使うのは簡単で、NSOpenGLViewという部品をWindow上に配置し、カスタムクラスを上記部品用に作成すれば、そのクラス上で普通にOpenGL処理を行える。

この辺については、Java版では少し小細工が必要であった事を鑑みると、流石にネイティブ、という感じではあったのだが、Mirror-DTCクライアントの場合には、OpenGLで描画するViewにスクロールバーを表示しなければならない場合がある訳だ。

冒頭に書いた躓きというのは、このスクロールバー表示の事で、ネットで色々と調べて見た結果、どうも、スクロールバー表示は、素直な方法では実現できないみたいだった。

何故なら、ネットを調べてみると、作者と同様にOpenGLViewにスクロールバーを表示したいので方法が知りたい、という質問は多々あったのだが、マトモな回答は一つも無かったからだ。

そして、例によって、そんな事をやろうとする事が間違っている、というような回答も多々あったのだが、作者的には、そんな回答が行われている場合、そんな事は出来ない、と、言っていると解釈するので、今回の件についても、普通の方法では出来ないのだろう、と、解釈した訳だ。

Cocoaフレームワークには、NSScrollViewというビューがあって、普通の部品なら、このViewに入れてやれば、自動的にスクロールバー付きの部品に出来る。

しかし、当然の事ながら、NSOpenGLViewについては、そうはならなかったので、作者的には色々と調べて見た訳なので、多分、Apple純正の部品では、どうにも出来ないのだろう。

と、いう事で、スクロールバーについては、OpenGLView上で、自分で描画して実現する格好にせざるを得ないかもしれない。

ちなみに、前半で書いたDeprecatedの問題について、何故、ネットで色々と検索しなければならなかったのか、というと、WindowsやJavaやGTKなんかの場合、ドキュメントにDeprecatedと書かれてある場合には、必ず、代わりにXXを使え、というような表記があって、そこへのリンクも張られているのだが、Appleのサイトには、代替APIについての記述は、一切、無かったからだ。

なので、作者的には、OSXの機能が削減され、PCM音声をアプリから出力する事は出来なくなったのか、と、一瞬思ったのだが、流石に、それは無いだろう、という事で、色々とネットを探す事になった訳だ。

そして、常識的には、CoreAudioのAPIドキュメントを見れば、最新のAPIを使ったやり方が載っていそうなものなのだが、Appleについては、そういう常識も通用しない訳だ。

= この記事に関連する公開中ソフト =

Mirror-DTC

Mirror-DTC

(2015/02/15追加)

« もう一週間はかかりそうだが | トップページ | 画像表示も出来た »

トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/534482/60251906

この記事へのトラックバック一覧です: 音声再生は出来た:

« もう一週間はかかりそうだが | トップページ | 画像表示も出来た »

2017年11月
      1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30    

広告

プライバシーポリシー

  • 当サイトでは、第三者配信による広告(Google Adsense)サービスを利用しています。

    Google を含む第三者配信事業者は、Cookie を使用して、ユーザーのウェブサイトでの閲覧履歴に基づく広告を配信します。 Google 広告 Cookie を使用することにより、Google や Google のパートナーは当サイトや他のサイトへのアクセス情報に基づく広告をユーザーに表示できます。

    Cookieを無効にする設定およびAdsenseに関する詳細については、以下のリンクを参照下さい。

    広告 - ポリシーと規約 - Google