Created
March 7, 2017 04:47
-
-
Save ChandraniChatterjeeMolly/a3bb342822c8f92bc5149256e4f918af to your computer and use it in GitHub Desktop.
miwok:PhrasesFragment
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package com.example.android.miwok; | |
import android.content.Context; | |
import android.media.AudioManager; | |
import android.media.MediaPlayer; | |
import android.os.Bundle; | |
import android.support.v4.app.Fragment; | |
import android.view.LayoutInflater; | |
import android.view.View; | |
import android.view.ViewGroup; | |
import android.widget.AdapterView; | |
import android.widget.ListView; | |
import java.util.ArrayList; | |
/** | |
* A simple {@link Fragment} subclass. | |
*/ | |
public class PhrasesFragment extends android.support.v4.app.Fragment { | |
public PhrasesFragment() { | |
// Required empty public constructor | |
} | |
MediaPlayer mMediaPlayer; | |
private AudioManager audioManager; | |
private AudioManager.OnAudioFocusChangeListener mOnAudioFocusChangeListener ; | |
//release Mediaplayer resources | |
private void releaseMediaPlayerResource() { | |
if (mMediaPlayer != null) { | |
mMediaPlayer.release(); | |
mMediaPlayer = null; | |
} | |
} | |
@Override | |
public void onStop() { | |
super.onStop(); | |
releaseMediaPlayerResource(); | |
} | |
@Override | |
public View onCreateView(LayoutInflater inflater, ViewGroup container, | |
Bundle savedInstanceState) { | |
View rootView = inflater.inflate(R.layout.word_list, container, false); | |
// Create a list of words | |
final ArrayList<Word> words = new ArrayList<Word>(); | |
words.add(new Word("Where are you going?", "minto wuksus", R.raw.phrase_where_are_you_going)); | |
words.add(new Word("What is your name?", "tinnә oyaase'nә", R.raw.phrase_what_is_your_name)); | |
words.add(new Word("My name is...", "oyaaset...", R.raw.phrase_my_name_is)); | |
words.add(new Word("How are you feeling?", "michәksәs?", R.raw.phrase_how_are_you_feeling)); | |
words.add(new Word("I’m feeling good.", "kuchi achit", R.raw.phrase_im_feeling_good)); | |
words.add(new Word("Are you coming?", "әәnәs'aa?", R.raw.phrase_are_you_coming)); | |
words.add(new Word("Yes, I’m coming.", "hәә’ әәnәm", R.raw.phrase_yes_im_coming)); | |
words.add(new Word("I’m coming.", "әәnәm", R.raw.phrase_im_coming)); | |
words.add(new Word("Let’s go.", "yoowutis", R.raw.phrase_lets_go)); | |
words.add(new Word("Come here.", "әnni'nem", R.raw.phrase_come_here)); | |
// Create an {@link WordAdapter}, whose data source is a list of {@link Word}s. The | |
// adapter knows how to create list items for each item in the list. | |
WordAdapter adapter = new WordAdapter(getActivity(), words, R.color.category_phrases); | |
// Find the {@link ListView} object in the view hierarchy of the {@link Activity}. | |
// There should be a {@link ListView} with the view ID called list, which is declared in the | |
// word_list.xml layout file. | |
ListView listView = (ListView) rootView.findViewById(R.id.list); | |
// Make the {@link ListView} use the {@link WordAdapter} we created above, so that the | |
// {@link ListView} will display list items for each {@link Word} in the list. | |
listView.setAdapter(adapter); | |
listView.setOnItemClickListener(new AdapterView.OnItemClickListener() { | |
@Override | |
public void onItemClick(AdapterView<?> parent, View view, int position, long id) { | |
releaseMediaPlayerResource(); | |
mMediaPlayer = MediaPlayer.create(getActivity(), words.get(position).getMediaplayerId()); | |
//request audiofocus | |
audioManager = (AudioManager) getActivity().getSystemService(Context.AUDIO_SERVICE); | |
int requestResult = audioManager.requestAudioFocus(mOnAudioFocusChangeListener, AudioManager.STREAM_MUSIC, AudioManager.AUDIOFOCUS_GAIN_TRANSIENT); | |
if (requestResult == AudioManager.AUDIOFOCUS_REQUEST_GRANTED) { | |
mMediaPlayer.start(); | |
mMediaPlayer.setOnCompletionListener(new MediaPlayer.OnCompletionListener() { | |
@Override | |
public void onCompletion(MediaPlayer mp) { | |
releaseMediaPlayerResource(); | |
} | |
}); | |
} | |
} | |
}); | |
return rootView; | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment