2016-08-20 4 views
0

내 안드로이드 앱에서 사운드 풀을 사용하여 사운드 풀을 사용하려고합니다. 나는 소리를 내야하는 3 가지 활동을하고있다. 그래서 응용 프로그램이 시작될 때만 전역 적으로 소리를로드 할 수 있습니까 ?? 전역 클래스를 만들고 모든 사운드를 한 번로드 한 다음 다른 활동에서 사용할 수 있습니까?모든 활동에 사운드를 한 번로드하기

+0

음악을 처리하기 위해 사용자 컨트롤러에 제공하지 않는 한 음악은 항상 배경 작업입니다. – sumandas

답변

0

당신은 예를 글로벌 클래스에서 오디오를로드 할 수 있습니다이 예

//start service 
Intent svc=new Intent(this, BackgroundSoundService.class); 
startService(svc); 

//Add in manifest file 
<service 
    android:enabled="true" 
    android:name="com.package.name.BackgroundSoundService" /> 

public class BackgroundSoundService extends Service { 
    private static final String TAG = null; 
    MediaPlayer player; 
    public IBinder onBind(Intent arg0) { 

     return null; 
    } 
    @Override 
    public void onCreate() { 
     super.onCreate(); 
     player = MediaPlayer.create(this, R.raw.idil); 
     player.setLooping(true); // Set looping 
     player.setVolume(100,100); 

    } 
    public int onStartCommand(Intent intent, int flags, int startId) { 
     player.start(); 
     return 1; 
    } 

    public void onStart(Intent intent, int startId) { 
     // TO DO 
    } 
    public IBinder onUnBind(Intent arg0) { 
     // TO DO Auto-generated method 
     return null; 
    } 

    public void onStop() { 

    } 
    public void onPause() { 

    } 
    @Override 
    public void onDestroy() { 
     player.stop(); 
     player.release(); 
    } 

    @Override 
    public void onLowMemory() { 

    } 
} 
0

을 시도 할 수 있습니다. Thankfully android는 우리에게 Application.java라는 클래스를 제공하고 있습니다.

public class TestApp extends Application { 

    private static final String TAG = "TestApp"; 

    private static TestApp sTestApp; 

    private MediaPlayer mMediaPlayer; 

    @Override 
    public void onCreate() { 
     super.onCreate(); 
     sTestApp = this; 
     mMediaPlayer = MediaPlayer.create(this, R.raw.music); 
     mMediaPlayer.setVolume(1, 1); //Volume should have to be between 0.0 to 1.0 
    } 

    public static TestApp getInstance() { 
     return sTestApp; 
    } 

    public void play() { 
     mMediaPlayer.start(); 
    } 
} 

그런 다음에 응용 프로그램 클래스로 선언하여 응용 프로그램이 완전히 파괴 한 후 응용 프로그램을 시작하고이 파괴 될 때

<application 
     android:name=".TestApp" 
     android:label="@string/app_name" 
     android:theme="@style/AppTheme"> 
     ......... 
</application> 

지금이 클래스가 자동으로 시작됩니다 매니페스트.

지금 당신은 당신이 원하는 목적지에서

TestApp.getInstance().play(); 

를 호출하여 오디오를 재생할 수 있습니다.