私は現在、オーディオ ファイルをトリガーするボタンがあるアプリを作成しようとしていますが、これらのオーディオ ファイルは、ファイル ブラウザー アクティビティを介してユーザーによって選択されます。MediaPlayer には遅延の問題などがあると聞きましたが、SoundPool にはメモリ制限がありますか?
また、ユーザーがファイル ブラウザ (選択したアイテム) から文字列を返すことでオーディオ ファイルを設定し、それをオーディオ API のパスとして使用することはできますか?
SoundPool
すでにロードされているファイルを再生しようとしている場合は、より高速です。ファイルのロードに時間がかかるため、パフォーマンスを向上させるにはファイルを小さくする必要があります。
しかし、あなたの場合、ユーザーが再生するファイルを選択しているようFileBrowser
で、ファイルサイズが異なるため、読み込み時間が異なります。MediaPlayer
代わりに行ってください。
SoundPool
よりも高速ですMediaPlayer
が、独自の制限があります。
SoundPool
メソッドで使用できるような小さな音に使用され、onClick()
ユーザーがどこかをクリックするたびにクリック音を鳴らすことができます。これは、これらのファイルがメモリにプリロードされているため、CPU がその動作に苦しむことがないためです。SoundPool
よりも速いのはそのためですMediaPlayer
。また、一度にレンダリングされるオーディオ ストリームの数を管理できます。
MediaPlayer
MediaPlayer
ユーザーが再生、一時停止、シーク、開始などの再生オプションにアクセスできるような場合に使用されます。また、長いオーディオは事前にメモリにロードできないため、一般的に長いオーディオに適しています。を使用して、インターネット経由で音声を再生することもできMediaPlayer
ます (将来のリリースで再生する予定がある場合に便利です)。
あなたの場合、ユーザーはファイル ブラウザ アクティビティからオーディオを再生することが許可されていますMediaPlayer
。