Использование MediaPlayer для Android Studio - PullRequest
0 голосов
/ 03 октября 2018

Я хотел бы автоматически воспроизводить музыку в фоновом режиме при входе на эту страницу фрагмента.Я полагаю, что закомментированный раздел - это то, как вы это реализуете, но я мог неправильно ввести первый параметр?

public class AlphabetFragment extends Fragment {

@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {

    //MediaPlayer mysong;
    //mysong = MediaPlayer.create(AlphabetFragment.this, R.raw.alphabetlist);
    //mysong.start();

    return inflater.inflate(R.layout.fragment_alphabet, container, false);
}

Или я кодирую это не в том месте, если оно является частью MainActivity.java?

case R.id.nav_alphabet:

getSupportFragmentManager().beginTransaction().replace(R.id.fragment_container, new AlphabetFragment()).commit();
                    //mysong = MediaPlayer.create(AlphabetFragment., R.raw.alphabetlistm4a);
                    //mysong.start();

Ответы [ 2 ]

0 голосов
/ 03 октября 2018

Вы можете просто использовать getActivity, чтобы получить контекст действия от fragment класса.

Как показано ниже.

public class AlphabetFragment extends Fragment {

@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {

    MediaPlayer mysong;
    mysong = MediaPlayer.create(this.getActivity(), R.raw.alphabetlist);
    mysong.start();

    return inflater.inflate(R.layout.fragment_alphabet, container, false);
}
0 голосов
/ 03 октября 2018

Используйте getActivity().Это дает Media Player необходимый контекст.Попробуйте использовать этот код:

MediaPlayer mp = MediaPlayer.create( getActivity() , R.raw.alphabetlist );

Ваш фрагмент кода должен выглядеть следующим образом:

MediaPlayer mp; 
public View onCreateView(LayoutInflater inflater, ViewGroup container,
    Bundle savedInstanceState) {

    mp=MediaPlayer.create(getActivity(), R.raw.alphabetlist); 
    mp.start():  

    return inflater.inflate(R.layout.fragment_alphabet, container, false);
}

Попробуйте это.Надеюсь, это поможет!

...