2017-12-27 2 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(); 
      } 
     } 

    } 


} 

것은 본인은 어쩌면 추한 코드 : 귀하의 답변에 대한 감사에 대한 미안, 코딩에 멍청한 놈이야, 말했듯이!

+0

예, 당신이 처음 보는 것 같습니다. :) for 루프를 완전히 제거하면 작동합니다. 기본적으로 startplayer() 메서드는 실행되지 않습니다. 왜냐하면 i가 0으로 초기화되고 i가 0보다 큰 동안이 루프 만 실행되기 때문입니다. 왜 for 루프가 여기에 있습니까? – gdbj

답변

0

DateTime에있는 ToString의 기본 형식은 MM/dd/yyyy이므로 비교 systemtime == "09:07:00 pm"은 절대로 적용되지 않습니다.

TimeSpanTimeOfDayDateTime에서 사용할 수 있습니다. i가 0보다 큰 그래서 루프가 실행되지 않을 것이다 첫 번째 검사에서 있도록, 0으로 i를 초기화로

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

또한, 루프가 실행되지 않습니다.

마지막으로, 안드로이드는 main 기능을 사용하지 않고, 프로그램의 특별한 유형이 초기화 코드가 OnCreate 기능에 있어야합니다,하지만 당신은 그 함수에서 무한 루프를 만들 경우 안드로이드 응용 프로그램을 닫습니다,로는하지 않습니다 초기화를 완료하면 타이머를 사용하고 초마다 조건을 확인해야합니다.

+0

for 루프와 시간에 대한 힌트를 주셔서 감사합니다. D : Media Player가 아직 시작되지 않은 이유는 무엇입니까? 나는 항상 시간 btw를 변경하고 있으므로 빌드를 내보낼 때와 일치합니다. – GodmasterofDoom

+0

죄송합니다. 새 코드를 보지 않고서는 어떤 문제가 있는지 짐작할 수 없습니다. – Gusman

+0

죄송합니다, 그건 저를 바보스럽게 생각합니다.) 주석을 오래 동안 가지고 있었기 때문에 pastebin에 새 코드를 업로드했습니다. https://pastebin.com/kEmt2KdA – GodmasterofDoom

관련 문제