当前位置: 首页 > 知识库问答 >
问题:

Android图像计时问题

黄毅
2023-03-14

我有一个Android应用程序,它需要在一个循环中显示图像和视频,播放视频没有问题,但当它到达图像时,屏幕变为空白,什么也没有发生。程序仍在运行,只是没有显示。

我正在使用SurfaceView。setBackground()来绘制图像,因为在播放视频的ImageView和SurfaceView之间进行交换之前会导致问题。

我在显示视频时遇到了类似的问题,我通过删除等待视频准备的循环来解决它,因此理想情况下,我希望删除等待计时器流逝的循环。

我有一个功能,可以在旧媒体完成时显示新媒体,也可以在当前媒体完成时准备下一个媒体。如果媒体是视频,则从onComplete函数调用,该函数工作正常。但如果是图像,我有一个等待循环。

我想做的是在图像显示所需的时间量时调用类似MediaPlayer.on完整()函数的东西。这样的东西存在吗?

共有1个答案

黄磊
2023-03-14

由于我需要做其他一些错误检查,我已经将其更改为使用处理程序。然而,另一种方式确实有效

mHandler.postdelayed(run, delay);

Runnable run = new Runnable(){

      public void run()
       {
          //run function
       }
     };

我想出来了。我创建了一个新线程,该线程运行计时器并在主活动中调用一个函数来更新屏幕。对更新屏幕的函数的调用是使用runOnUiThread()调用的,以便它有权更改屏幕。

public class ImageTimer implements Runnable{


    private long dur, cur,start;
    private boolean needed, run;
    private Activity mAct;

    ImageTimer(boolean running, long duration, Activity act)
    {
        run = running;
        dur = duration;
        needed = false;
        mAct = act;
    }

    @Override
    public void run() 
    {
        while(run)
        {
            if(needed)
            {
                start = System.currentTimeMillis();
                cur = System.currentTimeMillis() - start;
                while(cur < dur)
                {
                    cur = System.currentTimeMillis() - start;
                }   
                needed = false ;
                mAct.runOnUiThread(new Runnable() 
                {
                     public void run() 
                     {

                        MainActivity.ImageDone();
                     }

                });
            }
        }
    }
 类似资料:
  • 我正在使用科尔多瓦3.4。当我捕捉图像并设置它时,它工作正常,但当我试图从图库中访问图像时,我得到了url 我的图像标签中出现了图像加载错误。我知道这是一个已知的错误,我已经参考了堆栈问题,例如使用PhoneGap相机插件从Android 4.4(KitKat)的图库中选择时无法加载图像 我不能使用提到的URI手动设置的粗糙方法,如content://media/external/images/m

  • 我的应用程序检查是否有一个带有日期的文件。 如果有日期,它将计算今天和该(未来)日期之间的差值,并初始化计时器,以X天Y小时Z分S秒的方式倒计时到该日期。 如果没有文件,则用户可以通过按钮选择日期。程序将在文件中存储日期并设置倒计时。 有一个删除按钮可以删除日期并选择其他日期。此删除按钮应取消计时器,使其停止计数。 当我取消计时器时,计时器不会停止。我的计时器滴答作响,但相差2秒,而不是1秒。显示

  • 我正在尝试从我的Android应用程序上传一个图像到rest服务器。图片确实上传了,但在服务器上,照片查看器或其他图片应用程序无法打开上传的图片。我在服务器上使用netbeans 7中的glassfish 3。我不使用maven,我更喜欢非Moven解决方案。 下面是我用来在一个运行程序中从android上传图片的代码 我尝试在AddBinaryBody中将mime类型更改为multipart/f

  • > //这是我的java代码,firebase部分仅在以下条件下工作正常(requestCode==102){br>//imageuri=data.getData(); imageuri;public static final int PICK\u IMAGE=1@重写受保护的void onCreate(Bundle savedInstanceState){super.onCreate(saved

  • 问题内容: 我无法使用Android 9.0 Pie中的Picasso库加载图像。实际上,它适用于以下版本。它没有显示任何错误消息。有人使用共享了他在Github上的日志 他有消息日志: 问题答案: 尝试在清单文件的应用程序标记中使用!由于我在使用Android Volley时遇到同样的问题! 根据Android文档 指示应用程序是否打算使用明文网络流量,例如明文HTTP。适用于应用的默认值,该值

  • 我一直在互联网上努力研究如何在编译成可运行的jar后显示图像图标。我发现这个问题太晚了,我以前在eclipse中运行过很多次程序,一切都正常,现在6个月后项目完成了,我用eclipse编译了我的程序,没有音频或图像工作。在网上阅读,它说关于图片文件夹的位置应该在罐子里,但我的没有放在那里? 我在源文件夹中移动了图片文件夹,但它不起作用。我有一种感觉,这可能与资源的路径有关。。。但这只是猜测。 我已