• ベストアンサー

再生位置を変更する方法を教えてください。

AUGraphを使用したミュージックプレイヤーを作成しています。 AUGraphStartにてオーディオを再生しているのですが、 UISliderで再生位置を表示して、ドラッグで変更出来るようにしたいのですが、 RenderCallbackのsourceAudioBufferDataPtrから再生位置は取得可能なのですが 再生位置を変更する方法が分かりません。 ご存知のかたいましたらアドバイスをお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

RenderCallbackもsourceAudioBufferDataPtrもあなたが定義した メソッドや変数だと思うので、どのような方法で音楽データを 読み込んで再生しているのか、詳しい説明がない限り直接的な アドバイスはできませんが、 例えば http://www.loopsessions.com/blog/?p=17 にあるような構造で再生しているのであれば、 ExtAudioFileRead関数で読み込んだデータを AUGraphのコールバック関数に引き渡す形で 再生しているので、UISliderで再生位置の変更を 指示されたら、ExtAudioFileSeek関数で 音楽データの読み込み位置を移動すればよい ということになります。 もし音楽データ全体があらかじめメモリ配列に読み込まれていて、 再生時にコールバック関数に引き渡すデータ位置を sourceAudioBufferDataPtrが示しているのであれば、 単純にそのsourceAudioBufferDataPtrの値を変更するだけで うまくいきそうな気がしますが、もしそれをやっても うまくいかないため質問しているのであれば、そのあたりの 音楽データ読み込み構造を調べる必要があると思います。

cocoro99
質問者

お礼

もう一度、回答いただいた内容を読み直していたのですが、 回答に >ExtAudioFileRead関数で読み込んだデータをAUGraphのコールバック関数に引き渡す形 と、あります。 今回、イコライザを使用したくて補足の構成でAUGraphを構成しています。 この中に、Extended Audio File Services はつながらないものだと思っていたのですが、 このような構成の中に組み込めるのでしょうか? 組み込めるのであれば、おっしゃる通りExtAudioFileSeek関数を使えるのですが。 補足を含めて長文ですみませんが、よろしくお願いします。

cocoro99
質問者

補足

アドバイスありがとうございます。 Extended Audio File Servicesは使用していません。 現在、以下の構成でAUNodeをつなげてAUGraphStartにて再生しています。 (実際にはkAudioUnitType_FormatConverterを挟んでいます。) kAudioUnitType_Generator kAudioUnitSubType_AudioFilePlayer ↓ kAudioUnitType_Effect kAudioUnitSubType_AUiPodEQ ↓ kAudioUnitType_Effect kAudioUnitSubType_Delay ↓ kAudioUnitType_Mixer kAudioUnitSubType_MultiChannelMixer 質問にありました、RenderCallbackとは AUGraphAddRenderNotify(_AUGraph, RenderCallback, (__bridge void *)(self)); にて登録したコールバックとなります。 そもそも、このコールバックでは既にレンダリングが終わっているようなので、もっと前の段階の kAudioUnitType_GeneratorのkAudioUnitSubType_AudioFilePlayer等に対して処理する必要があるのでしょうか? 回答にありました、sourceAudioBufferDataPtrについてはAppleのサンプル(https://developer.apple.com/library/ios/samplecode/iPhoneMixerEQGraphTest/Introduction/Intro.html)を流用しているのですが、まだまだ理解出来ていないため 色々調べたのですが、この変数に対して、どこで書き込みが行われているかを、まだ見つける事が出来ていません。 まだまだ知識不足で、とんちんかんな感じですが、少しずつ進めていきたいと思います。 このような状況ですが、何か参考になる情報何どあればご教授いただければ幸いです。

関連するQ&A

  • ●再生速度を変更できるミュージックプレイヤー

    ●再生速度を変更できるミュージックプレイヤーを探しています。 ●普段はiPodシャッフルを使用しているのですが、再生速度が変更できないので、新しいプレイヤーを探しています。 ●値段が中古で3000円以内で、扱いやすいプレイヤーをご存知の方がいらっしゃいましたら教えていただけないでしょうか?

  • ituneの「再生位置を記憶」について

    mp3のファイルをituneで 右クリック→プロパティ→オプション→「再生位置を記憶」を外す で「再生位置を記憶」機能を外せるんだと思います ただ今回はそれが出来ませんでした 「再生位置を記憶」のところが灰色になって、クリックできなくなってます ちなみに今回と関係ないですが、「再生位置を記憶」の下の「シャッフル時にスキップ」も既にチェックされていて、クリックできなくなってます 今回のファイルは保護されたオーディオファイルでm4bです ituneでいうとミュージックの欄ではなく、オーディオブックの欄に入ってます この形式は「再生位置を記憶」の変更は出来ないのでしょうか? もし知っているかたいらっしゃったら教えてください 宜しくお願いします

  • フォルダの表示位置を変更したいのですが。

    あるフォルダを開くと、いつも画面右上に表示されます。 このフォルダの表示位置を右下にしたいと思い、ドラックして移動 させて一旦閉じてみました。 再度このフォルダを開いてみると、いつもの右上に表示されてしまいます。 このフォルダを常に希望の位置に表示させる方法をご存知の方が いらっしゃいましたら、教えて頂ければと思います。 宜しくお願い致します。

  • Toast で再生互換性の高いDVDビデオを焼く方法

    Toast で DVDビデオ作成の際に、その他→DVDで、 「VIDEO_TSフォルダ が入ったフォルダを Toast にドラッグ」すれば家電DVDプレーヤーでも見られる DVDビデオになると聞いたのですが、 (1) Toast上で、「新規DVD」を作成してから、「VIDEO_TSフォルダ が入ったフォルダをドラッグ」するのか、 (2) 新規DVDを作成せずに、「VIDEO_TSフォルダ が入ったフォルダをドラッグ」(この時ドラッグしたフォルダがディスクに変わる)でいいのか、 (3) Toast上で「新規DVD」→「新規フォルダ」を作成して、「VIDEO_TSフォルダをドラッグ」 この3つの方法に何か違いがあるのでしょうか? また、違いがあるとしたら、どれが正しいのでしょうか? また、その他の部分でも、再生互換性の高いDVD-Rの作成方法などありましたら、教えて下さい。 (空のAUDIO_TSフォルダを入れておいたほうがいいとか)

    • ベストアンサー
    • Mac
  • WinDVD9で再生できません

    例えばDVDShrinkなどで作成してハードディスクに保存したDVDフォルダ(VIDEO_TS , AUDIO_TS)ですが、以前はWinDVD6などにドラッグするだけで再生できました。 ところがVista対応WinDVD9ではフォルダをドラッグしても再生できません。 PowerDVD7はファイルとフォルダの選択ができて、フォルダを選べばドラッグで再生開始します。 個人的にはWinDVDが好みなので、何とかこれで再生したいと思います。 ご存知の方が居られましたらぜひお教え下さい。

  • バーナーを表示する位置を変える方法は?

    FrontPage2000を使用してgooにホームページを掲載している最中ですが、バーナーの表示位置を自由に変える方法はあるのでしょうか?たとえば、表を作成して任意の位置に表示したいのですが・・・・。 また、バーナーのサイズを変更する方法も教えて下さい。よろしくお願いいたします。

    • ベストアンサー
    • HTML
  • Word(2000)で、表を任意の位置の移動させる方法

    お世話になります。 Word2000を使っております。 表を作成した後、位置をずらしたい場合、 左上の十字矢印が表示されたときにドラッグで動かしますが、 相当ずらさないと位置が変わってくれません。 ちょっと微調整とがする方法はありますでしょうか? どなたか方法をご存知でしたら、どうぞご教授下さい。m(_ _)m こういうことが不得意だからページメーカーみたいなソフトが、あるのでしょうか...?

  • ウインドウズメディアプレイヤー再生リストについて

    ウインドウズメディアプレイヤー12でお気に入りの曲を集めて再生リストを作成しました。 my musicフォルダには確かにリストは作成されていますが、メディアプレイヤーの再生リストのところには表示されません。曲の追加をしようにも作業ができない状況です。 何か方法がありましたら教えてくださいませ。

  • 画像の位置変更について

    iPhoneで撮影して送ってきた縦位置の動画を、Windows Media Playerで再生すると、横位置になります。縦にする方法を教えてください。

  • HTMLの背景画像の表示位置を変更する方法

    HTMLの背景画像の表示位置を変更する方法 質問させてください。 HTMLの背景画像ですが、スタイルシートのbackground-positionを使用すれば表示位置を変更することが可能です。 同様の機能をスタイルシートを使用せずHTMLタグのみで実現できないでしょうか? 例えば、<body background=""></body>タグにさらに何かの属性を追加する、などです。 ご存知の方がおられましたら、是非ともお教えください。

    • ベストアンサー
    • HTML

専門家に質問してみよう