构建工作,但媒体播放似乎没有加载

问题描述 投票:1回答:1

我正在制作一个Android应用程序,目的是在午夜播放一首特定的歌曲。我知道appstore中可能已经存在用于此目的的应用程序,但我不熟悉编码并希望尝试自己编写应用程序。所以现在我已经达到了我不知道该怎么办的地步。我尝试在运行Android 6.0的LG H818P上调试应用程序。它发布了,图标,名称和一切都是正确的,但我没有播放这首歌,即使我设置的时间它应该在开始后两分钟播放它如果建筑物。

这就是Visual Studio 2017中MainActivity.cs的代码,任何人都可以找到任何错误吗?

using Android.App;
using Android.Widget;
using Android.OS;
using System;
using Android.Media;

namespace Name of the App
{
    [Activity(Label = "Name of the App", MainLauncher = true)]
    public class MainActivity : Activity


    {
        string text = "status";
        protected void onCreate(Bundle savedInstanceState)

        {


        }

        public void main()
        {
            try
            {

                string systemtime = DateTime.Now.ToString();

                for (int i = 0; i > 0; i++)
                {
                    if (systemtime == "09:07:00 pm")
                    {
                        StartPlayer();
                        player.Start();
                    }
                }
            }
            catch
            {
                text = "Error!";
            }
        }

        protected MediaPlayer player;
        public void StartPlayer()
        {
            if (player == null)
            {
                player = new MediaPlayer();
                player.SetDataSource("Ressources.raw.file2beplayed.mp3");
                player.Prepare();
                player.Start();
                text = "Playing!";
            }
            else
            {
                player.Reset();
                player.SetDataSource("Ressources.raw.file2beplayed.mp3");
                player.Prepare();
                player.Start();
            }
        }

    }


}

正如我所说,我是编码中的Noob,对于可能难看的代码感到抱歉:)感谢您的回复!

c# android visual-studio xamarin
1个回答
0
投票

ToStringDateTime的默认格式是MM/dd/yyyy,所以你的比较systemtime == "09:07:00 pm"永远不会成真。

你可以使用TimeSpanTimeOfDay的物业DateTime;

if(DateTime.Now.TimeOfDay == new Timespan(21,7,0))
  //...

此外,在将i初始化为0时,永远不会执行循环,因此在第一次检查时,i将不会大于0,因此循环不会执行。

最后,Android不使用main函数,是一种特殊类型的程序,你的初始化代码应该在OnCreate函数中,但如果你在该函数中创建一个无限循环,Android将关闭应用程序,因为它不会完成它的初始化,你需要使用计时器并每秒检查一下条件。

© www.soinside.com 2019 - 2024. All rights reserved.