我需要制作一个可以逐渐将播放速度从0变为大约200%的视频播放器。它必须表现得非常快,因为它将播放以高帧率(60 FPS)录制的高清电影。如果无法支持HD,则可以使用较低的分辨率。
代码只需要在具有硬件h264解码器的相对高端的Android平板电脑上运行,以及ICS(目标平板电脑无可用的Jelly Bean)。
我还没有找到任何支持来改变Android系统中的视频播放速率,我怀疑我需要深入挖掘JNI才能到达那里,但是我想先问这里是否有人有一些代码,建议或可以帮助我的指针。
答案 0 :(得分:2)
我从vitamio获得了android自定义播放器。在这方面,媒体播放器可以选择设置播放速度。 即 mMediaPlayer.setPlaybackSpeed(速度); 设置视频和音频播放速度 参数: 速度如0.8或2.0,默认为1.0,范围为[0.5-2]
答案 1 :(得分:1)
我一直在寻找类似的东西,以下是我的一些可能对您有用的发现:
minSdkVersion = 14
,因此它应该适用于您的ICS设备。我在唯一可用的ICS +设备上测试了这个,运行4.2(Jellybean)的16GB华硕Nexus7,我在备注日志中输出了以下输出(省略了我自己的调试语句)
01-15 14:19:33.384: W/libOpenSLES(6037): class MediaPlayer interface 1 requested but unavailable MPH=75
01-15 14:19:33.384: W/libOpenSLES(6037): Leaving Object::GetInterface (SL_RESULT_FEATURE_UNSUPPORTED)
01-15 14:19:33.384: A/libc(6037): jni/native-media-jni.c:409: Java_com_example_nativemedia_NativeMedia_createStreamingMediaPlayer: assertion "XA_RESULT_SUCCESS == res" failed
01-15 14:19:33.384: A/libc(6037): Fatal signal 11 (SIGSEGV) at 0xdeadbaad (code=1), thread 6037 (ple.nativemedia)
在加载媒体流(或文件)并创建本机mediaplayer实例的函数中。这些错误非常明确地表明我的设备/解码器,操作系统或我的文件类型不支持该功能。我不确定它是哪一个(或组合),但如果它是第一个,它可能意味着没有很多设备可以支持你想要的功能。也许Nexus7是一个异常值,但不幸的是,这仍然是平板电脑领域相当大的一部分,这意味着我们不能期望在其他设备上有太多的一致性。
如果有人遵循这些说明并且已成功运行,请发表评论 - 我将继续对此进行攻击并尝试使其正常运行,并将随着任何进展进行更新。