我已经查看了我可以找到的所有以前的问题,但我还没有找到任何真正有效的解决视频无法播放的事实。我正在使用 h.264 编码的 .mp4 文件,并且我正在通过主 Activity 的 Intent extra 发送 R.raw.[video name] 的地址。至少那部分是有效的,因为当我在主布局中按下“播放视频”按钮时,适当的视频的音频会加载有效的播放控件,我只是无法让视频本身正常工作,这让我发疯了。
这是我的代码:
import android.app.Activity;
import android.net.Uri;
import android.os.Bundle;
import android.widget.MediaController;
import android.widget.VideoView;
public class VideoPlayer extends Activity {
private VideoView video;
private MediaController playbackControls;
public static final String iValue = "iValue";
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.video);
video = (VideoView) findViewById(R.id.video);
Bundle extras = getIntent().getExtras();
int playMe = extras.getInt(iValue, 0);
Uri uri = Uri.parse("android.resource://" + getPackageName() + "/" + playMe);
playbackControls = new MediaController(this);
video.setMediaController(playbackControls);
video.setVideoURI(uri);
video.start();
}
}
所以我看到的一切都表明这是相当标准的代码,它应该可以工作。关于我需要使用哪个编解码器,我有什么遗漏吗?这些东西有大小限制吗?
我确实让它播放了一个超级糟糕的 .3gp 文件,但不是一个比特率甚至可以接受的文件。您几乎无法将视频中的斑点识别为人类,而音频听起来像是来自井底。一个更大的 .3gp 文件出现时完全无法播放。
任何建议将不胜感激。谢谢!
2011 年 4 月 16 日 - 任何遇到此搜索的人的后续行动:终于找到了一个我可以用来调试的真实设备,并且视频在上述设置下完美播放。很高兴知道模拟器在播放视频时完全废话。