我有一个使用MediaPlayer的应用程序,当我流式传输下载MP3时工作正常。我试图使用相同的应用程序来传输进度下载AAC文件。它播放文件很好。当我尝试使用带有AAC的MediaPlayer.seekTo()在流中跳过时,什么不起作用。这在mp3中再次正常工作。对于AAC流,它只是在零时重新开始播放。
我的感觉是编码相关。尚未正确配置AAC文件以进行流式传输。
以下是MediaInfo工具的输出:
Size: 2.3 MB
Format: QuickTime/MPEG-4/Motion JPEG 2000 format
Stream count: 2
Duration: 00:05:02
Bit rate: 64 kb/s
Meta info:
album_artist: Red Hot Chili Peppers
album: The Getaway
minor_version: 512
encoder: Lavf57.41.100
title: Dark Necessities
major_brand: M4V
track: 2
disc: 1
compatible_brands: isomiso2avc1
artist: Red Hot Chili Peppers
copyright: 2016 Warner Bros. Records Inc.
genre: Alternative
Stream 0
Type: video
Codec: h264
Codec profile: High 10
FourCC: avc1
Duration: 00:00:00
Width: 350
Height: 350
Sample aspect ratio: 1:1
Display aspect ratio: 1:1
Pixel format: yuv420p10le
Frame rate: 90000 fps
Meta info:
handler_name: VideoHandler
language: und
Stream 1
Type: audio
Codec: aac
FourCC: mp4a
Duration: 00:05:02
Bit rate: 64 kb/s
Sample rate: 44100 Hz
Sample format: s16
Channel: 2
Meta info:
handler_name: SoundHandler
language: und
您会注意到它实际上是一个带有AAC音频的视频文件,并且不包含真实视频。如果是这种情况,那么我认为当我要求可能加载或未加载的部分流时,需要更多元数据来知道在哪里播放。视频还需要关键帧才能知道在哪里玩,所以我认为流/文件中不包含任何关键帧或“提示”框。
我没有找到任何有关遗失的真实细节或者是否可能的真实细节。我已经在其他版本上测试了这个,似乎在5.0.2之前它有效。在5.0.2之后它不起作用。我没有找到关于该版本中发生了哪些变化的任何细节。
因此,这可能是一个流编码问题,不允许我们通过渐进式下载http(s)流传输此文件。或者,它可能是Android Media Player在5.0.2时间框架内创建的错误。或者它可能都是。
为什么这不起作用?