- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
有问题的代码:
public class VideoPlayer extends Activity {
Bundle bundle;
VideoView vv;
String type;
Uri path;
Context mContext;
ImageView countImage;
@Override
public void onCreate(Bundle savedInstanceState) {
//Remove title bar
this.requestWindowFeature(Window.FEATURE_NO_TITLE);
//Remove notification bar
this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
super.onCreate(savedInstanceState);
setContentView(R.layout.videoplayer);
mContext = getBaseContext();
vv = (VideoView) findViewById(R.id.videoView1);
countImage = (ImageView) findViewById(R.id.countdownNumber);
countImage.setVisibility(View.GONE);
getWindow().setFormat(PixelFormat.TRANSLUCENT);
// get details from the Bundle's extras.
bundle = getIntent().getExtras();
String playMode = bundle.getString("mode");
if (playMode.compareTo("single") == 0) { playSingle(); }
else if (playMode.compareTo("multi") == 0) { playMulti(); }
else { finish(); }
}
// --- PLAY SINGLE ---
public void playSingle() {
// retrieve name of video to play from the Bundle
String videoname = bundle.getString("videoname");
Uri path = Uri.parse("android.resource://com.sexinfo101.positions.guide/raw/video_" + videoname);
boolean result = false;
int test = mContext.getResources().getIdentifier("video_" + videoname, "raw", mContext.getPackageName());
if (test != 0) { result = true; }
if (!result) { finish(); }
vv.setMediaController(new MediaController(this));
vv.setVideoURI(path);
vv.requestFocus();
//vv.start();
vv.setOnPreparedListener(new OnPreparedListener() {
@Override
public void onPrepared(MediaPlayer mp) {
mp.setLooping(true);
vv.start();
}
});
vv.setOnCompletionListener(new OnCompletionListener() {
@Override
public void onCompletion(MediaPlayer mp) {
if (!mp.isPlaying()) {
mp.release();
finish(); // we're done here
}
}
});
}
}
logcat 输出:
08-06 15:22:30.770: ERROR/MediaPlayerService(116): Returning PV_PLAYER*************************
08-06 15:22:30.790: ERROR/PlayerDriver(116): Creating Non-Tunnel mode playback - uncompressed MIO
08-06 15:22:30.800: ERROR/OMX-VDEC-720P(116): In OMX vdec Constuctor
08-06 15:22:30.800: ERROR/OMX-VDEC-720P(116): Name of the device is Unknown
08-06 15:22:30.800: ERROR/OMX-VDEC-720P(116): omx_vdec::component_init(): Start of New Playback
08-06 15:22:30.800: ERROR/OMX-VDEC-720P(116): omx_vdec::component_init(): Open returned fd 30
08-06 15:22:31.300: ERROR/OMX-VDEC-720P(116): Reject Second instance of Decoder
08-06 15:22:31.300: ERROR/OMX-VDEC-720P(116): In OMX vdec Destructor
08-06 15:22:31.300: ERROR/OMX-VDEC-720P(116): Waiting on OMX Msg Thread exit
08-06 15:22:31.300: ERROR/OMX-VDEC-720P(116): Waiting on OMX Async Thread exit
08-06 15:22:31.300: ERROR/OMX-VDEC-720P(116): Exit OMX vdec Destructor
08-06 15:22:31.310: ERROR/PlayerDriver(116): Command PLAYER_PREPARE completed with an error or info PVMFErrResource
08-06 15:22:31.320: ERROR/MediaPlayer(1364): error (1, -17)
08-06 15:22:31.330: ERROR/MediaPlayer(1364): Error (1,-17)
后面是更多的 logcat 输出:
08-06 15:24:29.400: ERROR/AndroidRuntime(1364): FATAL EXCEPTION: main
08-06 15:24:29.400: ERROR/AndroidRuntime(1364): java.lang.IllegalStateException
08-06 15:24:29.400: ERROR/AndroidRuntime(1364): at android.media.MediaPlayer._reset(Native Method)
08-06 15:24:29.400: ERROR/AndroidRuntime(1364): at android.media.MediaPlayer.reset(MediaPlayer.java:1061)
08-06 15:24:29.400: ERROR/AndroidRuntime(1364): at android.widget.VideoView.release(VideoView.java:510)
08-06 15:24:29.400: ERROR/AndroidRuntime(1364): at android.widget.VideoView.access$2100(VideoView.java:50)
08-06 15:24:29.400: ERROR/AndroidRuntime(1364): at android.widget.VideoView$6.surfaceDestroyed(VideoView.java:500)
08-06 15:24:29.400: ERROR/AndroidRuntime(1364): at android.view.SurfaceView.reportSurfaceDestroyed(SurfaceView.java:568)
08-06 15:24:29.400: ERROR/AndroidRuntime(1364): at android.view.SurfaceView.updateWindow(SurfaceView.java:472)
08-06 15:24:29.400: ERROR/AndroidRuntime(1364): at android.view.SurfaceView.onWindowVisibilityChanged(SurfaceView.java:206)
08-06 15:24:29.400: ERROR/AndroidRuntime(1364): at android.view.View.dispatchDetachedFromWindow(View.java:6029)
08-06 15:24:29.400: ERROR/AndroidRuntime(1364): at android.view.ViewGroup.dispatchDetachedFromWindow(ViewGroup.java:1156)
08-06 15:24:29.400: ERROR/AndroidRuntime(1364): at android.view.ViewGroup.dispatchDetachedFromWindow(ViewGroup.java:1156)
08-06 15:24:29.400: ERROR/AndroidRuntime(1364): at android.view.ViewGroup.dispatchDetachedFromWindow(ViewGroup.java:1156)
08-06 15:24:29.400: ERROR/AndroidRuntime(1364): at android.view.ViewRoot.dispatchDetachedFromWindow(ViewRoot.java:1630)
08-06 15:24:29.400: ERROR/AndroidRuntime(1364): at android.view.ViewRoot.doDie(ViewRoot.java:2720)
08-06 15:24:29.400: ERROR/AndroidRuntime(1364): at android.view.ViewRoot.die(ViewRoot.java:2690)
08-06 15:24:29.400: ERROR/AndroidRuntime(1364): at android.view.WindowManagerImpl.removeViewImmediate(WindowManagerImpl.java:218)
08-06 15:24:29.400: ERROR/AndroidRuntime(1364): at android.view.Window$LocalWindowManager.removeViewImmediate(Window.java:436)
08-06 15:24:29.400: ERROR/AndroidRuntime(1364): at android.app.ActivityThread.handleDestroyActivity(ActivityThread.java:3684)
08-06 15:24:29.400: ERROR/AndroidRuntime(1364): at android.app.ActivityThread.access$2900(ActivityThread.java:125)
08-06 15:24:29.400: ERROR/AndroidRuntime(1364): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2066)
08-06 15:24:29.400: ERROR/AndroidRuntime(1364): at android.os.Handler.dispatchMessage(Handler.java:99)
08-06 15:24:29.400: ERROR/AndroidRuntime(1364): at android.os.Looper.loop(Looper.java:123)
08-06 15:24:29.400: ERROR/AndroidRuntime(1364): at android.app.ActivityThread.main(ActivityThread.java:4627)
08-06 15:24:29.400: ERROR/AndroidRuntime(1364): at java.lang.reflect.Method.invokeNative(Native Method)
08-06 15:24:29.400: ERROR/AndroidRuntime(1364): at java.lang.reflect.Method.invoke(Method.java:521)
08-06 15:24:29.400: ERROR/AndroidRuntime(1364): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)
08-06 15:24:29.400: ERROR/AndroidRuntime(1364): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
08-06 15:24:29.400: ERROR/AndroidRuntime(1364): at dalvik.system.NativeStart.main(Native Method)
我怀疑 logcat 行“08-06 17:31:29.960: ERROR/OMX-VDEC-720P(116): Reject Second instance of Decoder”指向准备失败的原因,但我有不知道第二个实例来自哪里。它确实先于解码器的实际关闭,因此如果不是原因,它似乎至少暗示了一个原因。
有什么想法吗?在调试器中,我可以看到找到了一个有效的资源,并且在我从上面的代码中删除的多人游戏函数中将定时器换成处理程序和可运行程序之前,这段代码工作得很好。
最佳答案
好的,这原来是固件/操作系统/设备问题。这个问题可能是由我最近开始使用的 SuperBoot 引导 ROM 在我的华为 IDEOS X5 U8800 手机上获得 root 权限引起的。根据开发者的说法,这个引导 ROM 是为固件版本 136 开发的,我使用的是 135。升级后,一切似乎再次顺利运行,包括 WiFi 访问和一切:)
可以在此处找到讨论此问题的论坛线程的链接:http://android.modaco.com/topic/340374-25-may-r1-superboot-and-then-some-for-the-huawei-u8800-ideos-x5/
关于Android VideoView 准备失败; OMX-VDEC 报告第二个实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6967952/
我一直在试图找出为什么这会给我一个错误: PREPARE test FROM 'SELECT t.blah FROM (SELECT ? AS blah) t;'; ERROR 1054 (42S22
我想了解 Go 中的 channel 。我读过默认情况下发送和接收 block ,直到发送方和接收方都准备好。但是我们如何确定发送方和接收方的准备情况。 例如在下面的代码中 package main
大部分的pytorch入门教程,都是使用torchvision里面的数据进行训练和测试。如果我们是自己的图片数据,又该怎么做呢? 1、我的数据 我在学习的时候,使用的是fashion-mnis
在我的 Storyboard中,controller1 有 natigationController 和 segues 到 controller 2。奇怪的是 Segue 工作正常但是 overrid
我正在尝试使用Openshift在线从我的仓库中放入一些代码。 我的构建编译正常,但是部署失败: error: update acceptor rejected nodejs-mongo-persis
已结束。此问题不符合 Stack Overflow guidelines .它目前不接受答案。 要求我们推荐或查找工具、库或最喜欢的场外资源的问题对于 Stack Overflow 来说是无关紧要的,
我有一个每晚运行的存储过程。 它从链接服务器中提取一些数据并将其插入到运行 sql 代理作业的服务器上的表中。在运行 INSERT 语句之前,该过程检查链接服务器上的数据库是否联机 (STATE =
我对 PDO 准备好的语句比较陌生。 我忍不住觉得必须有一种更简单、更整洁的方法来执行以下操作:我无论如何都将所有内容加载到一个数组中,然后必须将整个内容重写为一组 ':blah '=>$found[
我正在准备一个 pandas 数据框,用于在 R 的 ggplot2 中绘制带有误差条的图,这需要计算列的统计数据。误差条需要最小值(平均值 - 标准偏差)和最大值(平均值+标准差)。我使用 grou
我的 prepareForSegue 方法没有将数据传递到目标 View Controller 。 var buttonsDictionary = [Int: UIButton]() func cre
需要帮助来完成这个简单的任务。该 sp 应该提供一个结果集,并将从 MS-Access-Database 报告目的中调用。 表名可变,但以数字 (lsid) 结尾。使用串联。max_prepared_
我正在为我工作的小型企业创建销售订单表单。我有一个表单连接到数据库以获取下拉菜单,然后连接到文本框以在需要时添加新数据。如果前面的部分中的所有数据框均已填写,还会出现另外四个部分。 链接到数据库的
以下代码: class Database { (...) public function query($query){ $this->stmt = $this->dbh
我正在开展一个学校项目,涉及一个具有数据库集成的网站。目前正致力于通过它向网站添加新内容(文本、标题、图像)。我已经可以通过网站向数据库添加新用户,但由于某种原因,相同的代码和逻辑不适用于内容。 我注
我如何mysqli::stmt->bind_param在mysql中被视为NULL的东西? 我目前正在使用 $stmt->bind_param('s', 'NULL'); 最佳答案 bind_para
我在此处运行准备 stmt 时遇到语法错误。我尝试手动执行 @c 中的查询并且它有效。不知道为什么 stmt 会给出这个错误。这是我正在使用的代码。 SET @i=24; SET @Bill_mont
已关闭。这个问题是 not reproducible or was caused by typos 。目前不接受答案。 这个问题是由拼写错误或无法再重现的问题引起的。虽然类似的问题可能是 on-top
我想知道准备好的查询是否与未准备的查询一样安全。下面是两个示例,一个用于 SELECT,一个用于 UPDATE。第一行是未准备的查询,第二行是准备好的查询。 选择示例: $userDetails =
我是 ios 开发的新手,在我尝试做的事情上遇到了障碍。 我的方法中有这段代码,旨在将特定的 NSObject 从这个 View 传递到下一个 View ,但是它总是让我的应用程序崩溃。 -(void
自上次调用 segue 以来,我的 UIButton 类的 statValue 属性已更新,但 segue 仍发送旧的原始值。有没有办法刷新 prepare 函数(如下),以便它发送新值? overr
我是一名优秀的程序员,十分优秀!