• After 15+ years, we've made a big change: Android Forums is now Early Bird Club. Learn more here.

Apps ANDROID LISTENER!!!

I need to create a listener to show an ad after a sound is finish playing. I have how I am currently playing the sound in the screenshot above.
 
You can set a listener on the media player like this

Code:
m_context.setOnCompletionListener(new OnCompletionListener(){

                @Override
                public void onCompletion(MediaPlayer mp){
                    mp.reset();
                    mp.release();
                    mp=null;

                   // Show your ad here

                }
            });
 
I'm getting this error http://prntscr.com/afduke. Also my class that i'm trying to define it in.

Code:
import android.content.Context;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageButton;
import android.widget.TextView;

import com.startapp.android.publish.StartAppAd;


public class ClipAdapter extends BaseAdapter {
    private StartAppAd startAppAd;
    private GridActivity m_context;
    private Soundboard m_soundboard;
    private static LayoutInflater inflater=null;

  
    public ClipAdapter(GridActivity c, Soundboard s) {
        m_context = c;
        startAppAd = new StartAppAd(m_context);
        m_soundboard = s;
        inflater = ( LayoutInflater )m_context.
                getSystemService(Context.LAYOUT_INFLATER_SERVICE);


    }
  
    @Override
    public int getCount() {
        // TODO Auto-generated method stub
        return m_soundboard.getSize();
    }

    @Override
    public Object getItem(int position) {
        // TODO Auto-generated method stub
        return m_soundboard.get(position);
    }

    @Override
    public long getItemId(int position) {
        // TODO Auto-generated method stub
        return 0;
    }


    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        // TODO Auto-generated method stub
        try {
            final Clip c = m_soundboard.get(position);
            View rowView;
          
            if (c != null) {
                rowView = inflater.inflate(R.layout.grid_item_layout, null);
                TextView tv =(TextView) rowView.findViewById(R.id.textView);
                ImageButton button=(ImageButton) rowView.findViewById(R.id.imageButton);
                //Button button = new Button(m_context);
                //button.setHeight(24);
                tv.setText(c.getTitle());
                m_context.registerForContextMenu(button);
                button.setTag(c);
                //button.getBackground().setColorFilter(new LightingColorFilter(0xffFFFFFF, 0xffFFFFFF));
                //button.setPadding(0,0,0,0);
                button.setOnClickListener(new OnClickListener() {
                    @Override
                    public void onClick(View v) {
                        // TODO Auto-generated method stub
                        m_context.play(c.getResourceId());
                        startAppAd.showAd(); // show the ad
                        startAppAd.loadAd(); // load the next ad
                    }
                });
                //return button;
                return rowView;
            }
        }
        catch (IndexOutOfBoundsException e) {
            Log.e(getClass().getCanonicalName(), "No audio at position "
                    + position);
        }
        return null;
    }
}
 
setOnCompletionListener is a method of class MediaPlayer. The variable m_context is not a MediaPlayer.
You need to pass your MediaPlayer object into the ClickAdapter class as a constructor parameter.
 
Back
Top Bottom