I want to set LocalSocket FileDescriptor as a data source for the
MediaPlayer. Here is my code:

public class sipActivity extends Activity {
    public static final String S_ADDR = "test.server";

    public class Server implements Runnable {
        public LocalSocket receiver = null;

        public void run() {
                try {
                        LocalServerSocket server = new LocalServerSocket 
(S_ADDR);
                        while (receiver == null) {
                                receiver = server.accept();
                        }
                } catch (Exception e) {
                        Log.e("me", "ooops", e);
                }
        }
    }

    public class MediaWriter implements Runnable {
        public LocalSocket sender = null;

        public void run() {
                try {
                        sender = new LocalSocket();
                        sender.connect(new LocalSocketAddress(S_ADDR));
                        FileInputStream media = new 
FileInputStream("/system/media/
audio/alarms/Alarm_Classic.ogg");
                        int readed;
                        byte [] b = new byte [1024];
                        do {
                                readed = media.read(b);
                                if (readed > 0) {
                                        sender.getOutputStream().write(b, 0, 
readed);
                                }
                        } while (readed > -1);
                } catch (Exception e) {
                        Log.e("me", "ooops", e);
                }
        }
    }

    /** Called when the activity is first created. */
    @Override

    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        try {
                Server mServer = new Server ();
                new Thread (mServer).start();
                MediaWriter mMedia = new MediaWriter ();
                new Thread (mMedia).start();
                while (mServer.receiver == null) {
                        Thread.sleep(10);
                }
                MediaPlayer mMediaPlayer = new MediaPlayer();
                mMediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
 
mMediaPlayer.setDataSource(mServer.receiver.getFileDescriptor());
                mMediaPlayer.prepare();
                mMediaPlayer.start();
        } catch(Exception e) {
                Log.e("me", "ooops", e);
        }
    }
}

But I got an exception on the line:
mMediaPlayer.setDataSource(mServer.receiver.getFileDescriptor());

The error is following:
java.io.IOException: setDataSourceFD failed: status=0x80000000
  at android.Media.MediaPlayer.setDataSource(Native Method)
  at android.Media.MediaPlayer.setDataSource(MediaPlayer.java:251)
  ...

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google
Groups "Android Developers" group.
To post to this group, send email to android-developers@googlegroups.com
To unsubscribe from this group, send email to
[EMAIL PROTECTED]
Announcing the new Android 0.9 SDK beta!
http://android-developers.blogspot.com/2008/08/announcing-beta-release-of-android-sdk.html
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to