1. Nimm jetzt an unserem Uhans - 3. ADVENT - Gewinnspiel teil - Alle Informationen findest Du hier!

vogella tutorial --> setOnLoadComplete

Dieses Thema im Forum "Android App Entwicklung" wurde erstellt von 1zu0, 25.07.2012.

  1. 1zu0, 25.07.2012 #1
    1zu0

    1zu0 Threadstarter Junior Mitglied

    Beiträge:
    28
    Erhaltene Danke:
    2
    Registriert seit:
    16.12.2010
    Phone:
    HTC Desire
    Moinmoin, ich hätt da gen mal ein Problem ;)
    Hab mir das hier abgeschaut:
    Handling Media with Android - Tutorial
    --> 3. Tutorials: Play sounds via SoundPool
    Das setOnLoadComplete wird angemeckert ;(
    Mein Code der MainActivity.java:
    Code:
    package com.example.soundpooltest_1;
    
    import android.media.AudioManager;
    import android.media.SoundPool;
    import android.os.Bundle;
    import android.app.Activity;
    import android.util.Log;
    import android.view.Menu;
    import android.view.MenuItem;
    import android.view.MotionEvent;
    import android.view.View;
    import android.view.View.OnTouchListener;
    import android.widget.ImageButton;
    import android.widget.Toast;
    import android.support.v4.app.NavUtils;
    
    public class MainActivity extends Activity implements OnTouchListener {    
        
        private ImageButton ibPlayMusic;
        
        private SoundPool   soundpool;
        private int         soundID;
        boolean             loaded = false;
        
        private MenuItem    menExit, menHelp;    
        
        //=======================================================
        
        private void init()
            {                
                
                ibPlayMusic = (ImageButton)findViewById(R.id.ibPlayMusic);           
                
                ibPlayMusic.setOnTouchListener(this);
                
                // Set the hardware buttons to control the music
                this.setVolumeControlStream(AudioManager.STREAM_MUSIC);
                
                // Load the sound
                soundpool = new SoundPool(10, AudioManager.STREAM_MUSIC, 0);
         //       soundpool.setOnLoadCompleteListener(new OnLoadCompleteListener()
                    {
                        
                        public void onLoadComplete(SoundPool soundPool, int sampleId, int status)
                            {
                                // TODO Auto-generated method stub
                                
                            }
                    });
    //            setOnLoadCompleteListener(new OnLoadCompleteListener()
    //                {                
    //                    
    //                    public void onLoadComplete(SoundPool soundpool, int sampleId, int status)
    //                        {
    //                            loaded = true;
    //                        }
    //                });
                
                soundID = soundpool.load(this, R.raw.sound2, 1);
            }    
        //=======================================================
        
        
    //    public boolean onTouch(View v, MotionEvent event) {
        
        public boolean onTouch(View v, MotionEvent event) {
            if (event.getAction() == MotionEvent.ACTION_DOWN) {
                
                // Getting the user sound settings
                AudioManager audioManager = (AudioManager) getSystemService(AUDIO_SERVICE);
                float actualVolume = (float) audioManager
                        .getStreamVolume(AudioManager.STREAM_MUSIC);
                float maxVolume = (float) audioManager
                        .getStreamMaxVolume(AudioManager.STREAM_MUSIC);
                float volume = actualVolume / maxVolume;
                
                // Is the sound loaded already?
                if (loaded) {
                    soundpool.play(soundID, volume, volume, 1, 0, 1f);
                    Log.e("Test", "Played sound");
                }
            }
            return false;
        }    
    
        //=======================================================
        
        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            
            init();
        }
    
        public boolean onOptionsItemSelected(MenuItem item)
            {
                if(item == menExit)
                    {
                        Toast.makeText(this,"In Hamburg sagt man Tschühüüs ;)", Toast.LENGTH_SHORT).show(); 
                        finish();
                    }
                
                if(item == menHelp)
                    {
                        Toast.makeText(this, "zu Hüüüülföö", Toast.LENGTH_SHORT).show();
                    }           
                
                return true;               
                
            }
    
        @Override
        public boolean onCreateOptionsMenu(Menu menu) {
            
            menExit = menu.add("Beenden");
            menHelp = menu.add("Info");
            
            return true;
        }
        
        //=======================================================
        
       
    }
    
    
    Code der activity_main.xml:
    Code:
    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools"
        android:layout_width="match_parent"
        android:layout_height="match_parent" >
    
        <ImageButton
            android:id="@+id/ibPlayMusic"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_centerHorizontal="true"
            android:layout_centerVertical="true"
            android:background="@null"
            android:contentDescription="MukkeIcon"
            android:scaleType="fitCenter"
            android:src="@drawable/note2" />
    
        <ImageView
            android:id="@+id/ivLogo"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentTop="true"
            android:layout_centerHorizontal="true"
            android:layout_marginTop="26dp"
            android:src="@drawable/soundmachine" />
    
    </RelativeLayout>
    
    
    [​IMG]

    Vielen Dank im voraus :smile:
     
  2. mradlmaier, 25.07.2012 #2
    mradlmaier

    mradlmaier Gewerbliches Mitglied

    Beiträge:
    158
    Erhaltene Danke:
    17
    Registriert seit:
    28.10.2011
    Du rufst die setOnLoadCompleteListener() 2-mal auf. Einmal auf den soundpool und einmal auf die Activity selbst. Die Activity definiert aber keine setOnLoadCompleteListener Methode.
    Was immer Du damit erreichen willst, das geht nicht weil die Methode nicht definiert ist.
     

Diese Seite empfehlen