我使用 concatenatingaudiosource 以这种方式加载无缝音乐:
ConcatenatingAudioSource(
children: _mediaItems
.map((item) => AudioSource.uri(Uri.parse(item.id)))
.toList(),
),
initialIndex: startIndex,
initialPosition: pos >= _mediaItems[startIndex].duration
? Duration(seconds: 0)
: pos);
这种方法一直运行良好,直到它最近开始崩溃。它将连续加载以下颤振输出:
flutter: Warning database has been locked for 0:00:10.000000. Make sure you always use the transaction object for database operations during a transaction
并使整个应用程序 ui 无响应。
我注意到如果我将播放列表减少到大约 4-5 首歌曲,加载时间会减少,这与我们在生产中使用的相比非常小(之前的 80-100 首歌曲,它运行得又快又好)。
如果有人能帮忙,我会很高兴。