无花的空间--http://wuhua.3geye.net-- 您今天UCWEB了吗?--http://www.ucweb.com

当你来到我的空间的时候,你会看到很多Google,Nokia,Mobile,J2ME ,Android,3G,无线开发,手机软件,手机软件开发等与Google,手机相关的文章,你千万不要惊讶。这就是我一个专注Google,无线开发的无花。传播知识,分享经验,技术交流是我开空间的直接目的。当然如果有项目开发,我还是很希望赚点外快的。

用户操作
[即时聊天] [发私信] [加为好友]
无花ID:gooogledev
40562次访问,排名2971,好友20人,关注者24人。
J2EE 2年的开发时间,
J2ME 2年的开发时间
gooogledev的文章
原创 80 篇
翻译 0 篇
转载 3 篇
评论 201 篇
无花的公告

人要吃很多苦才可以长大!

踏实平凡人应该遵守的原则!

与我TM

gooogledev@gmail.com

友情链接

我的j2me创意

Wap浏览器的源代码

用自己写的rms引擎写的电话本

RSS订阅此博客  
用抓虾订阅此博客
用google订阅此博客
用bloglines订阅此博客
    网络封神榜 | 饶荣庆
最近评论
22:main()在哪个.java中
ant-shopping:I support author's viewpoint, hoped that will have later also more better articles,
abercrombie fitch handbag
ptsell:I support author's viewpoint, hoped that will have later also more better articles,
Balenciaga Bags
真的假的,屁股上的痣也能拍出来?
leo2012:奇怪,怎么下的wap explorer不能访问wap站点
文章分类
收藏
    相册
    j2me创意图片
    j2me教程
    我的照片
    我的链接
    3G视线
    EasyMF J2ME框架
    Lucene中国
    我的Google
    无花的博客
    存档
    软件项目交易
    订阅我的博客
    XML聚合  FeedSky
    订阅到鲜果
    订阅到Google
    订阅到抓虾
    订阅到BlogLines
    订阅到Yahoo
    订阅到GouGou
    订阅到飞鸽
    订阅到Rojo
    订阅到newsgator
    订阅到netvibes

    原创 我的第一个Android 多媒体的Demo收藏

    新一篇: 最近研发的J2ME产品。流媒体播放器与电子书 | 旧一篇: 一个简单的XML for J2ME

    作者:wuhua
    空间:htt://wuhua.3geye.net
    转载请保留上面的信息(请尊重知识产品)谢谢


    package com.ucweb.player;

    import java.io.IOException;

    import android.app.Activity;
    import android.content.Context;
    import android.graphics.PixelFormat;
    import android.media.MediaPlayer;
    import android.media.MediaPlayer.OnBufferingUpdateListener;
    import android.media.MediaPlayer.OnCompletionListener;
    import android.media.MediaPlayer.OnErrorListener;
    import android.os.Bundle;
    import android.util.Log;
    import android.view.Menu;
    import android.view.Surface;
    import android.view.SurfaceHolder;
    import android.view.SurfaceView;
    import android.view.Window;
    import android.view.Menu.Item;

    public class VideoPlayer extends Activity implements OnErrorListener,
                    OnBufferingUpdateListener, OnCompletionListener
            {
            private static final String TAG = "PlayVideo";

            private static final int PLAY_VIDEO = Menu.FIRST + 1;
            private static final int PLAY_MP3 = Menu.FIRST + 2;
            private static final int STOP_PLAY_ID = Menu.FIRST + 4;

            private MediaPlayer mp;

            private Preview mPreview;

            /** Called when the activity is first created. */
            @Override
            public void onCreate(Bundle icicle)
            {
                    super.onCreate(icicle);
                    Log.v(TAG, "onCreate: ===> ");
                    requestWindowFeature(Window.FEATURE_NO_TITLE);
                    getWindow().setFormat(PixelFormat.TRANSPARENT);

                    mPreview = new Preview(this);
                    setContentView(mPreview);
            }

            private void playVideo()
            {
                    try
                    {
                            SurfaceView view = new SurfaceView(this);
                        Surface surface = view.getHolder().getSurface();
                            setContentView(view);

                            Log.v(TAG, "height: " + mPreview.getHeight());
                            Log.v(TAG, "width: " + mPreview.getWidth());
                            mp = MediaPlayer.create(this, R.raw.mp3);

                            mp.setOnErrorListener(this);
                            mp.setDisplay(mPreview.getHolder().getSurface());
                            mp.prepare();
                            Log.v(TAG, "Duration:  ===>" + mp.getDuration());
                            mp.start();
                    }
                    catch (Exception e)
                    {
                            //e.printStackTrace();
                            Log.e(TAG, "error: " + e.getMessage());
                            stopPlay();
                    }
            }

            private void playMp3() throws IOException
            {
                    mp = MediaPlayer.create(this, R.raw.mp3);
                    mp.prepare();
                    Log.v(TAG, "Duration: ===>" + mp.getDuration());
                    mp.start();
            }

            private void stopPlay() {
                    if (mp != null) {
                            mp.stop();
                            mp.release();
                    }
            }

            @Override
            public boolean onCreateOptionsMenu(Menu menu)
            {
                    boolean result = super.onCreateOptionsMenu(menu);
                    menu.add(0, PLAY_MP3,"MP3");
                    menu.add(1, PLAY_VIDEO, "MP3");
                    menu.add(1, STOP_PLAY_ID, "MP3");
                    return result;
            }

            @Override
            public boolean onOptionsItemSelected(Item item)
            {
                    Log.v(TAG, "option: " + item.getId());
                    switch (item.getId()) {
                    case PLAY_MP3:
                        try{
                            playMp3();
                    }catch(Exception e){
                    }
                            break;
                    case PLAY_VIDEO:
                            playVideo();
                            break;
                    case STOP_PLAY_ID:
                            stopPlay();
                            break;
                    }
                    return super.onOptionsItemSelected(item);
            }

            @Override
        protected boolean isFullscreenOpaque()
            {
                // Our main window is set to translucent, but we know that we
    //will
                // fill it with opaque data. Tell the system that so it can
    //perform
                // some important optimizations.
                return false;
            }

            @Override
            protected void onResume() {
                    // Because the CameraDevice object is not a shared resource,
                    // it's very important to release it when the activity is paused.
                    super.onResume();
                    //    mPreview.resume();
            }

            @Override
            protected void onPause() {
                    // Start Preview again when we resume.
                    super.onPause();
                    //    mPreview.pause();
            }

            public void onError(MediaPlayer mediaPlayer, int what, int extra) {
                    Log.e(TAG, "onError--->   what:" + what + "    extra:" + extra);
                    if (mediaPlayer != null) {
                            mediaPlayer.stop();
                            mediaPlayer.release();
                    }
            }

            public void onBufferingUpdate(MediaPlayer arg0, int percent) {
                    Log.d(TAG, "onBufferingUpdate--->   percent:" + percent);
            }

            public void onCompletion(MediaPlayer arg0) {
                    Log.d(TAG, "onCompletion--->   finished");
            }

    }

    class Preview extends SurfaceView implements SurfaceHolder.Callback {
            SurfaceHolder mHolder;
            private boolean mHasSurface;

            Preview(Context context) {
                    super(context);

                    mHolder = getHolder();
                    mHolder.addCallback(this);
                    mHasSurface = false;

                    mHolder.setFixedSize(320, 240);
                    //mHolder.setFixedSize(192, 242);
            }

            public void surfaceCreated(SurfaceHolder holder) {
                    // The Surface has been created, start our main acquisition thread.
                    mHasSurface = true;
                   // return true;
            }

            public void surfaceDestroyed(SurfaceHolder holder) {
                    // Surface will be destroyed when we return. Stop the preview.
                    mHasSurface = false;
            }

            public void surfaceChanged(SurfaceHolder holder, int format, int w,
    int h) {
        // Surface size or format has changed. This should not happen in
    //this
        // example.
    }}

    现在对这个东西还进行摸索阶段不知道他有没有提供对流媒体的支持。如果可以直接支持流媒体的话。那真是太好了。这样就可以用java来写流媒体。 继续研究

    发表于 @ 2008年05月31日 17:46:42|评论(loading...)|编辑

    新一篇: 最近研发的J2ME产品。流媒体播放器与电子书 | 旧一篇: 一个简单的XML for J2ME

    评论:没有评论。

    发表评论  


    登录
    Csdn Blog version 3.1a
    Copyright © 无花