2017-12-27 8 views
1

私はちょうど真夜中に特定の曲を再生する目的を持っている現時点でアンドロイドアプリで作業しています。私は既にその目的に役立つアプリストアにアプリがあるかもしれないことを知っていますが、私はコーディングには新しく、アプリを自分でプログラムしようと思っていました。 それでは、私はもう何をすべきか分かりません。私はAndroid 6.0を実行している私のLG H818Pでアプリケーションをデバッグしようとしました。それは、アイコン、名前とすべてが正しかったが、私はそれが建物の場合は、開始後2分に再生する必要があります時間を設定しても、私は歌を演奏しなかった、投稿した。ビルドは動作しますが、メディアの再生がロードされないようです

これは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のよ:)ご回答のため ありがとう!

+0

はい、これは初めてのようです。 :)あなたのforループを完全に削除すればうまくいきます。私は0に初期化されているので、startplayer()メソッドを実行することは基本的に決してありません。このループはiが0より大きい間だけ実行されます。 – gdbj

答えて

0

DateTimeToStringのデフォルトフォーマットはMM/dd/yyyyあるので、あなたのcomparation systemtime == "09:07:00 pm"は真ではありません。

TimeOfDayのプロパティはDateTimeです。あなたは0としてiを初期化して最初のチェックiでそのループが実行されていない0より大きくなりませんので

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

はまた、あなたのループは、実行されることはありません。

最後に、Androidはmain関数を使用せず、特別なタイプのプログラムであり、初期化コードはOnCreate関数でなければなりませんが、その関数に無限ループを作成すると、Androidはアプリケーションを終了しません初期化を完了したら、タイマーを使用して毎秒条件を確認する必要があります。

+0

forループと時間についてのヒントをありがとう、ちょっとしたことがあったと思う:DしかしMedia Playerがまだ始まっていない理由を知っていますか?私はいつもbtwを変更しているので、ビルドをエクスポートしている時間と一致します – GodmasterofDoom

+0

あなたの新しいコードを見ることなく、申し訳ありませんが、私は何が問題なのか推測できません。 – Gusman

+0

申し訳ありません、それは私の愚かでした;)私はpastebinに新しいコードをアップロードしました。コメントを待っていたので、https://pastebin.com/kEmt2KdA – GodmasterofDoom

関連する問題