INNER CODE UNIT · Rust
write_replay_gain_tags
xiaobaimc/myune_music · rust/src/api/audio_info.rs:150
pub fn write_replay_gain_tags(path: String, gain_db: f64, peak: f64) -> Result<(), String> {
let mut tagged_file = Probe::open(&path)
.map_err(|e| e.to_string())?
.read()
.map_err(|e| e.to_string())?;
if tagged_file.primary_tag().is_none() {
let tag = Tag::new(tagged_file.primary_tag_type());
tagged_file.insert_tag(tag);
}
let tag = tagged_file
.primary_tag_mut()
.ok_or_else(|| "无法创建或读取主标签".to_string())?;
tag.insert_text(ItemKey::ReplayGainTrackGain, format!("{:.2} dB", gain_db));
tag.insert_text(ItemKey::ReplayGainTrackPeak, format!("{:.6}", peak));