2017-11-20 27 views
1

exoplayer를 사용하여 mp3 음악을 스트리밍하는 응용 프로그램을 만들었습니다. 알림 표시 줄 및 잠금 화면에 음악 플레이어 위젯을 추가하는 것을 제외하면 모든 것이 잘 작동합니다. 나는 많은 것을 검색하고 미디어 세션을 사용할 것을 제안하는 블로그 게시물을 발견했다. 그러나 나는이 개념에 익숙하지 않다. 누군가 exoplayer와 MediaSession을 연결하고 동일한 것을 사용하는 위젯을 만들 때 나를 도울 수 있습니까?exoplayer 용 뮤직 플레이어 위젯을 만드는 방법은 무엇입니까?

mediasession을 사용하지 않더라도 exoplayer를 사용하여 앱에서 음악 위젯을 만드는 방법을 제안하십시오. 자식 코드 또는 코드 샘플에 대한 링크가 도움이 될 것입니다.

여기 내 재생 음악 활동 코드입니다. Homeactivity에서이 메소드를 호출하고 있습니다. MediaSession를 사용하여 안드로이드 IO 지침 사항에 따라

public class PlayMusic { 
    private static SimpleExoPlayer mp; 
    private static Handler mainHandler; 
    private static RenderersFactory renderersFactory; 
    private static BandwidthMeter bandwidthMeter; 
    private static LoadControl loadControl; 
    private static DataSource.Factory dataSourceFactory; 
    private static ExtractorsFactory extractorsFactory; 
    private static MediaSource mediaSource; 
    private static TrackSelection.Factory trackSelectionFactory; 
    private static TrackSelector trackSelector; 
    private AudioManager audioManager; 
    private static final int BUFFER_SEGMENT_SIZE = 128 * 1024; 
    private static final int BUFFER_SEGMENT_COUNT = 1024; 
    public static final String channel_url = "http://ibadat.out.airtime.pro:8000/ibadat_a"; 
    public static void preparePlayingSound(Context con, String url) { 
     renderersFactory = new DefaultRenderersFactory(con); 
     bandwidthMeter = new DefaultBandwidthMeter(); 
     trackSelectionFactory = new AdaptiveTrackSelection.Factory(bandwidthMeter); 
     trackSelector = new DefaultTrackSelector(trackSelectionFactory); 
     loadControl = new DefaultLoadControl(); 
     mp = ExoPlayerFactory.newSimpleInstance(renderersFactory, trackSelector, loadControl); 
     dataSourceFactory = new DefaultDataSourceFactory(con, "ExoplayerDemo"); 
     extractorsFactory = new DefaultExtractorsFactory(); 
     mainHandler = new Handler(); 
     mediaSource = new ExtractorMediaSource(Uri.parse(url), 
       dataSourceFactory, 
       extractorsFactory, 
       mainHandler, 
       null); 
     mp.prepare(mediaSource); 
    } 
    public static void startPlayingSound(Context con) { 

     if (mp != null && mp.getPlayWhenReady()) 
     { 

     } else { 
      mp.setPlayWhenReady(true); 
      mp.setVolume(1f); 

     } 
    } 
    //and to stop it use this method below 
    public static boolean checkStatus(Context con) { 
     Boolean flag = false; 
     if (mp != null && mp.getPlayWhenReady()) { 
      flag = true; 
     } else { 
      flag = false; 
     } 
     return flag; 
    } 
    public static void stopPlayingSound(Context con) { 
     if (mp != null && mp.getPlayWhenReady()) { 
      mp.stop(); 
      mp.release(); 
      mp = null; 
     } else { 
     } 
    } 







    public static void setVolume(Context context,Float volume) 
    { 
     mp.setVolume(volume); 
    } 


} 

답변

0

다양한 devices.They는 다음에 출 Player를 사용하여 요청 모든게과 함께 같은 구현을 가진 예제 프로젝트를 제공이를 통해 음악을 스트리밍 할 수있는 가장 좋은 방법 중 하나입니다 link. 알림 및 잠금 화면 플레이어의 경우 위의 참조에서 MediaNotificationManger 클래스를 참조하십시오.