| 161 | |
| 162 | int64_t audio_duration_ms(const runtime::AudioBuffer & audio) { |
| 163 | if (audio.sample_rate <= 0 || audio.channels <= 0 || audio.samples.empty()) { |
| 164 | return 0; |
| 165 | } |
| 166 | const auto frames = static_cast<int64_t>(audio.samples.size()) / audio.channels; |
| 167 | return (frames * 1000) / audio.sample_rate; |
| 168 | } |
| 169 | |
| 170 | } // namespace |
| 171 | |
| 172 | HeartMuLaSession::HeartMuLaSession( |