2016-11-29 1 views
0

화면에 가사를 표시하는 노래를 재생하는 앱이 있습니다.예를 들어 Android 서비스 이해하기

두 상황 :

  1. 노래는 로컬 MP3 파일에서로드됩니다. 노래가 인터넷

나의 이해를 통해 원격 위치에서로드

  • 안드로이드 서비스 곡이 인터넷을 통해 원격 위치에서 스트리밍 할 때 구출되어 있다는 것입니다. Android 서비스는 i/o 오버 헤드 때문에 여기에서 도움이됩니다. 노래가 로컬 위치에서 재생되는 첫 번째 경우에는 서비스가 과도한 것일 수 있습니다. 단순히 액티비티에로드 된 음악을 재생하고 MediaPlayer API를 사용하여 재생할 수 있습니다.

    이 이해가 정확합니까? 내가 놓친 게 있니?

    업데이트 : 노래 크기가 10MB를 초과합니다. 따라서 전화를 통해 느린 인터넷을 통해 스트리밍하면 더 나은 사용자 환경을 위해 약간의 버퍼링과 물건이 수용 될 수 있습니다.

    미리 감사드립니다.

  • +1

    "이 이해가 맞습니까?" - 정말로. "서비스는 아마도 과잉이다."- 같은 노래의 경우 두 시나리오 모두에서 대략 동일한 양의 I/O가 있습니다. 이 경우 서비스를 사용할지 여부는 음악 재생이 진행되는 동안 사용자가 UI를 떠난 경우 발생하려는 상황을 기반으로 대부분 결정됩니다. – CommonsWare

    +0

    @CommonsWare 파일 크기 및 인터넷 연결 속도의 컨텍스트를 사용 사례로 업데이트했습니다. 로컬에서 재생되는 파일이 인터넷을 통해 스트리밍되어야하는 파일보다 빠릅니다. 아이오와는 실제로 같지 않습니다. 인터넷을 통해 스트리밍 할 때 고려해야 할 여러 가지 요소가 있습니까? – karthiks

    +0

    "입출력은 실제로 동일하지 않습니다"- 노래가 로컬에 저장되어 있는지 또는 스트리밍되어 있든 관계없이 3 분짜리 노래는 3 분이 소요됩니다. 노래가 로컬에 저장된 경우 대역폭 사용량이 훨씬 적습니다. 노래를 로컬에 저장하면 CPU 사용량이 조금 줄어들 것 같습니다. 노래를 로컬에 저장하면 배터리 사용량이 줄어 듭니다.서비스가 관련성이 있는지 여부는 중요하지 않습니다. – CommonsWare

    답변

    3

    다른 사용 사례에 따라 Services이 다릅니다. Media Player의 경우 재생을 전후방에서 계속 재생할 것인지 여부에 따라 다릅니다.

    두 경우 모두 Media Player Service에 적용 할 수 있습니다. 그러나 Android Developer Guide Media Player Service은 응용 프로그램 화면 - 그건 당신이 사용자가있는 동안은 계속 재생하려면,이다없는 경우에도 당신은 미디어가 백그라운드에서 재생하려면 MediaPlayer를
    과 함께 서비스를 사용하여 내 대답

    찬란 다른 응용 프로그램과 상호 작용하는 경우 서비스를 시작하고 거기에서 MediaPlayer 인스턴스를 제어해야합니다. 백그라운드 서비스를 실행하는 응용 프로그램이 나머지 시스템과 상호 작용하는 방법에 대한 사용자 및 시스템에 대한 기대치가 있으므로이 설정에주의해야합니다. 응용 프로그램이 이러한 기대를 충족시키지 못하면 사용자의 경험이 좋지 않을 수 있습니다. 이 섹션에서는 알아야 할 주요 문제에 대해 설명하고 접근하는 방법에 대한 제안을 제공합니다

    두 번째 경우는 네트워킹이 경우 당신이 .mp3와 패스를 다운로드 할 IntentService를 사용할 수에 대한 자세한 질문입니다 그것 MediaPlayer.

    +0

    내 Android OnePlus One 휴대 전화에서 앱을 시작하고 노래 (서비스없이 구현 된 코드)를 재생할 수 있습니다. 그런 다음 자체 배경 음악을 재생하는 게임 앱을 엽니 다. 재미있게도, 나는 이전에 게임 음악과 함께 연주 한 곡을 듣습니다. 어떻게 된 일인가? 이 사건은 내 가정을 변화 시켜서이 질문을하게했다. 귀하의 도움을 주시면 감사하겠습니다. – karthiks