MediaPlayerに関するピット

1353 ワード

ここ数日、会社はandroid 7.1のプラットフォームを開発する必要があり、古いプラットフォームのあるソフトウェアを移植する必要があります.
音声出力システムが正常かどうかを判断するためにMediaPlayerで小さなオーディオを再生することを主な論理とするテストソフトウェアがあります.
同社のテスト担当者は、音声テストが新しいプラットフォームで音がないか、「こつ」としか聞こえないことを反映している.
ソフトウェアに印刷を加え、オーディオフォーカスを申請するときに時間を記録し、オーディオ再生が終了してCompletionListenerにコールバックするときに中間時間を印刷します.
そして長さ3秒のwavオーディオtest_を発見しましたsoundは150 msくらいしか放送されていません....
                   mPlayer.setDataSource(
                            this,
                            Uri.parse("android.resource://" + this.getPackageName() + "/"
                                    + R.raw.test_sound));

demoでsetDataSourceが設定されているrawの下のリソースファイル
それからsetDataSourceをファイルへのパスに変更しました(曲は内部ストレージにコピーされました)
                    mPlayer.setDataSource("/storage/emulated/0/test_sound.wav");

test_サウンドで完全に再生できます
次に長さ9秒のWAVオーディオtestを交換しましたsound 2はrawでも放送できます.
でもtest_sound 2がフォーマット工場でわずか3秒にカットされた時、test_とsound同様の場合、150 ms程度しか放送されていません.
4秒も5秒もそうだった
6秒のWAVオーディオにカットしたとき、やっと完全に再生できました.
その後フォーマットに関係があるのではないかと疑ってWAVフォーマットのtest_soundはMP 3形式に変わり、150 ms程度しか放送されなかった.
奇妙な現象を記録します
これからは真実が出てくる
208029更新--------------------------------------------
設定プロンプト音にもこの現象があり、音量調整時に不完全なオーディオが再生される.