初めての 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_MUSICmin API lvl 15 が必要なため、使用できません。私のプロジェクトの最小 API レベルは 8 である必要があります。