初めての Android アプリを開発しています。音声録音アプリです。私は次のようにMediaRecordで音声を録音しています:
mRecorder = new MediaRecorder();
mRecorder.setAudioSource(MediaRecorder.AudioSource.MIC);
mRecorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);
mRecorder.setOutputFile(mFileName);
mRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);
try {
mRecorder.prepare();
} catch (IOException e) {
Log.e(LOG_TAG, "prepare() failed");
}
mRecorder.start();
.3gpp
そして、これらの録音された音声(ファイル)を再生するための別のアクティビティがあります。このアクティビティには、録音した音声を含む ListView があります。電話にインストールされている音楽プレーヤーでサウンドを再生したい。ここに私のコード:(このコードのソース: https://stackoverflow.com/a/3367231/556169 )
Intent intent = new Intent();
intent.setAction(android.content.Intent.ACTION_VIEW);
File file = new File((String) ((TextView) item).getText());
intent.setDataAndType(Uri.fromFile(file), "audio/*");
startActivity(intent);
しかし、「ミュージック プレーヤーはこの種類のメディアを再生できません」というエラーが表示されます。
このオーディオ ファイルをブラウズしてファイル エクスプローラーで再生すると、問題なく動作します (つまり、音声を正常に録音しています)。しかし、アプリケーション内で Intent を使用すると、エラーが発生します。
ADDITIONALMediaStore.INTENT_ACTION_MUSIC_PLAYER
非推奨のため
使えません。Intent.CATEGORY_APP_MUSIC
min API lvl 15 が必要なため、使用できません。私のプロジェクトの最小 API レベルは 8 である必要があります。