Android 高保真音频播放组件,支持 DSD、MQA、SACD、CUE 分轨、网盘 / WebDAV 等场景。
implementation("io.github.qytech:audioplayer:1.1.4")
dtsPassthroughEnabled 参数(Boolean,默认 false),用于控制 DTS 音频是否通过 HDMI 透传。当 HDMI 支持 DTS 透传时,设置为 true 即可启用透传输出。mqaUnfoldEnabled 参数(Boolean,默认 true),用于控制 MQA 解码时是否自动展开至最高采样率。设置为 false 时可锁定输出采样率,避免部分 DAC 对展开后高采样率不支持的问题。特别说明
maxSampleRate默认值为0,升级后不会改变原有输出采样率策略。- 最大采样率是用户指定的输出策略,不代表播放器能够自动识别 DAC 的全部能力。如果 DAC 不支持指定采样率,播放器会进入错误状态并通过
PlayerListener.onError(...)通知业务层,不会导致应用崩溃。
forceRelease,防止 USB 播放中拔出设备时闪退data class MediaInfo(
val sourceId: String,
val sampleRate: Int,
val channels: Int,
val bitrate: Long,
val bitDepth: Int,
val format: String,
val title: String = "Unknown Title",
val artist: String = "Unknown Artist",
val album: String = "Unknown Album",
// MQA 状态:0=非 MQA;非 0=已识别/认证
val mqaUiState: Int = 0,
// MQA 原始采样率 (Hz)
val mqaOriginalRate: Int = 0,
// MQA 展开后的输出采样率 (Hz)
val mqaOutputRate: Int = 0,
)
注:0.9.6 升级了 Gradle 版本,此版本暂时回退
webdav 播放时失败的问题DST 二次封装格式的音频检测不全问题playerManager.setNextMediaSource(
DefaultMediaSource(
uri = nextNextAudio.sourceId
)
)
AudioPlayerFactory 播放 CUE 时同时传入 Offset 和 CUE+TrackId 时可能出现播放异常PlayerListener 添加了 onMetadata(mediaInfo: MediaInfo) 接口data class MediaInfo(
val sampleRate: Int,
val channels: Int,
val bitrate: Long,
val bitDepth: Int,
val format: String,
val title: String = "Unknown Title",
val artist: String = "Unknown Artist",
val album: String = "Unknown Album",
)
val webDavUrl = "https://dav.jianguoyun.com/dav/音频测试/左右声道测试_PCM_44.1k.wav"
val webDavUser = ""
val webDavPwd = ""
AudioProbe.probeFile(webDavUrl, webDavUser = webDavUser, webDavPwd = webDavPwd)
AudioProbe.probe(webDavUrl, ScanProfile.WebDav(webDavUser, webDavPwd))
DffAudioFrame 被移除但其他库仍在使用的问题PlayerListener 合并了之前的 OnProgressListener 和 OnPlaybackStateChangeListenerpublic interface PlayerListener {
fun onPrepared()
fun onProgress(track: Int, current: Long, total: Long, progress: Float)
fun onError(code: Int, msg: String)
fun onComplete()
fun onStateChanged(state: PlaybackState)
}