0
私はAndroidで音楽プレーヤーアプリを作成していますが、MediaPlayerをサービスとして設定して、すべてのアクティビティ/フラグメントにわたって持続するようにしています。サービスコード:サービスAndroidでオブジェクト参照を設定する
public class PlayerService extends Service {
MediaPlayer mediaPlayer;
@Nullable
@Override
public IBinder onBind(Intent intent) {
return null;
}
@Override
public void onCreate() {
mediaPlayer = new MediaPlayer();
}
public void LoadUrl(String url){
mediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
try {
mediaPlayer.setDataSource(url);
} catch (IOException e) {
e.printStackTrace();
}
try {
mediaPlayer.prepare();
} catch (IOException e) {
e.printStackTrace();
}
//mediaPlayer.start();
Play(mediaPlayer);
}
public void Play(MediaPlayer player) {
player.start();
}
public void Pause(MediaPlayer player) {
player.pause();
}
}
とMainActivity:
public class MainActivity extends AppCompatActivity {
PlayerService playerService;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
if(savedInstanceState != null){
} else {
playerService = new PlayerService();
Intent startPlayer = new Intent(this, PlayerService.class);
startService(startPlayer);
....
MainActivityが開始されると、私はとのMediaPlayerにURLをロードしようとすると、それは、しかし、サービスを起動します:
playerService.LoadUrl(feedItem.getAudioUrl());
サービスのmediaPlayerがnullであるという例外があります。 mediaPlayerが保持されていることを確認するにはどうすればよいですか?
あなたは再生と一時停止で引数としてメディアプレーヤーを渡す必要はありません... –