我正在使用MediaPlayer
从URL流式传输音频。MediaPlayer暂停()行为
根据文档,调用MediaPlayer
pause
后跟play
将从暂停点恢复。
我想知道这是如何与现场音频流的作品。当我拨打pause
时,MediaPlayer
会创建某种缓冲区中的所有传入数据,并存储它,直到我再次拨打play
?
如果确实如此,那么这个缓冲区是否有最大尺寸?我主要关心用户暂停MediaPlayer
,它在存储传入音频数据时使用大量内存。
我正在使用MediaPlayer
从URL流式传输音频。MediaPlayer暂停()行为
根据文档,调用MediaPlayer
pause
后跟play
将从暂停点恢复。
我想知道这是如何与现场音频流的作品。当我拨打pause
时,MediaPlayer
会创建某种缓冲区中的所有传入数据,并存储它,直到我再次拨打play
?
如果确实如此,那么这个缓冲区是否有最大尺寸?我主要关心用户暂停MediaPlayer
,它在存储传入音频数据时使用大量内存。
因为我知道您使用Mediaplayer从网址流式传输音频......就像无线电频道一样。在这个过程中,你正在使用缓冲区。所以,你得到的行为是非常明显的。当你暂停时,你的数据将继续存储,并在恢复流时,它将从暂停点开始。
但是,与存储的音频从暂停点开始不同,流式传输不应以这种方式运行。流式音频应始终从当时的实时流式传输开始。所以,onPause,你应该释放缓冲区。当用户再次恢复时,您可以像第一次那样重新启动流。这就是行为应该如何。
如果您签出,在大多数广播流应用程序中实现正常的广播流。
不,暂停直播并再次播放只会从直播状态恢复。自暂停以来,它不会保留所有信息的缓冲区。 – whizzle
这不是我在测试时看到的行为。我同时从我的应用程序和我的电脑(供参考)流式传输。我暂停了手机上的数据流,等待了几分钟,当我恢复时,肯定不像我的电脑那样(我从来没有暂停过)。 – Tyler
我已经做了很多流媒体hls。流并不总是完全在同一个位置(例如,在Android和桌面上查看Twitch),但MediaPlayer在暂停时不会缓存25分钟的视频。嗯......现在你让我想知道我是否做了一些特别的事情。 – whizzle