0

オーディオを 3gp 形式で録音し、SD カードに保存しています。これは私のコードであり、正常に実行されます。追加した画像がアルバム カバーになるように、そのオーディオ ファイルに画像を追加する必要があります。 AndroidのデフォルトのメディアプレーヤーでSDカードの場所から録音されたオーディオを再生します..このように..

ここに画像の説明を入力

写真に示されている画像は、録音したオーディオ ファイルに付けなければならないアルバム カバーです。

/**
 * Starts a new recording.
 */
public void start() throws IOException {
String state = android.os.Environment.getExternalStorageState();
if (!state.equals(android.os.Environment.MEDIA_MOUNTED)) {
    throw new IOException("SD Card is not mounted.  It is " + state
        + ".");
}

// make sure the directory we plan to store the recording in exists
File directory = new File(path).getParentFile();
if (!directory.exists() && !directory.mkdirs()) {
    throw new IOException("Path to file could not be created.");
}

recorder.setAudioSource(MediaRecorder.AudioSource.MIC);
recorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);
recorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);
System.out.println("audio_file_path : = " + path);
recorder.setOutputFile(path);
recorder.prepare();

recorder.start();  // Recording is now started




}
4

1 に答える 1

1

Android メディア プレーヤーでアートを表示するためだけにファイルが必要な場合は、Google コンテンツ プロバイダを使用してアルバム アートを追加することを検討してください。3GP ファイルを作成したら、MediaScannerConnection API を使用してスキャンします。ContentResolverデータベースに追加された後、アクティビティまたはサービスで を使用してアクセスできます。MediaScannerConnection は、新しく作成されたファイルの URI を提供します。必要な新しいアートを SD カードの場所に配置してみてください。次に、次のように呼び出しますgetContentResolver().udpate(uri, newArtContentValue, null, null)。は、 のキーと の値を持つオブジェクトnewArtContentValueのインスタンスです。ContentValueMediaStore.Audio.AudioColumns.ALBUM_ARTfile:///sdcard/yourartfile.png

警告: 私は実際にこれを試していないので、微調整が必​​要な場合があります。ALBUM_ART フィールドが存在するように、Google がファイルを動画ファイルではなく音声ファイルとして扱うように、ファイルの拡張子を変更する必要がある場合があります。私が考慮していない他のケースもあるかもしれません。

絶対にアートをファイル自体に埋め込む必要がある場合:

3gp ファイルは、(私の知る限り) ファイルに埋め込まれたコバート アート メタデータをサポートしていません。したがって、別のコンテナ形式に記録する必要があります。それでも、コバート アート メタデータをサポートする唯一の利用可能な OutputFormat は MP4 だと思います。また、メディア ファイルを直接変更してそのようなタグを追加できる Android 機能を認識していません。

于 2011-04-28T06:50:58.673 に答える