在状态栏statusbar上建立后台视频播放窗口在Status_bar.xml (\frameworks\base\packages\systemui\res\layout)        添加
           <SurfaceView android:id="@+id/status_surface"
               android:layout_width="40dip"
               android:layout_height="40dip"
               android:layout_gravity="top"/> StatusBarService.java (frameworks\base\packages\systemui\src\com\android\systemui\statusbar)        
       mSurfaceView=(SurfaceView) sb.findViewById(R.id.status_surface);
       mstatus_holder=mSurfaceView.getHolder();
       mstatus_holder.addCallback(this);
执行下面的函数
    public void prepareVideoPlayback() {
        Log.v(TAG, "prepareVideoPlayback");
        //mstatus_holder.setFixedSize(20, 20);
        //mMediaPlayer.start();
        
        doCleanUp();
        try {
            // Create a new media player and set the listeners
            mMediaPlayer = new MediaPlayer();
            mMediaPlayer.setDataSource(path);
            mMediaPlayer.setDisplay(mstatus_holder);
            mMediaPlayer.prepare();
            mMediaPlayer.setOnBufferingUpdateListener(this);
            mMediaPlayer.setOnCompletionListener(this);
            mMediaPlayer.setOnPreparedListener(this);
            mMediaPlayer.setOnVideoSizeChangedListener(this);
            mMediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
        } catch (Exception e) {
            Log.e(TAG, "error: " + e.getMessage(), e);
        }
    }
总是出现如下错误, mmap不能成功,我有试过往mstatus_holder上画图都是可以的, 但是mstatus_holder作为mediaplayer播放视频就是不行, 不知道为甚??D/StatusBarService(  146): onPrepared called
V/StatusBarService(  146): startVideoPlayback
I/ActivityManager(   85): Starting: Intent { act=android.intent.action.MAIN cat=[android.intent.category.HOME] flg=0x10200000 cmp=com.android.launcher/com.androi[  186.224643] smdkv210_hw_params 123 rate=ac44
d.launcher2.Launcher } from pid 85
D/StatusBarService( [  186.234017] DmaAddr=@4fee0000 Total=32768bytes PrdSz=8192 #Prds=4 dma_area=0xff048000
146): surfaceChanged called format=4;invalid video width(1920) or height(1080)
D/AudioHardware(   63): AudioHardware pcm playback is exiting standby.
D/AudioHardware(   63): openPcmOut_l() mPcmOpenCnt: 0
D/alsa_pcm(   63): pcm_open(0x0002f000)
D/alsa_pcm(   63): pcm_open(/dev/snd/pcmC0D0p)
D/AudioHardware(   63): openMixer_l() mMixerOpenCnt: 0
E/MemoryHeapBase(   63): mmap(fd=27, size=0,offset=u) failed ((null))
I/DEBUG   (   61): *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
I/DEBUG   (   61): Build fingerprint: 'generic/full_smdkv210/smdkv210:2.3.1/GINGERBREAD/eng.xmxl.20111125.175343:eng/test-keys'
I/DEBUG   (   61): pid: 63, tid: 564  >>> /system/bin/mediaserver <<<
I/DEBUG   (   61): signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr ffffffff
I/ServiceManager(   58): service 'media.camera' died
I/ServiceManager(   58): service 'media.audio_policy' died
I/ServiceManager(   58): service 'media.audio_flinger' died
I/ServiceManager(   58): service 'media.player' died
W/AudioSystem(  177): AudioPolicyService server died!
W/AudioSystem(  177): AudioFlinger server died!
W/AudioSystem(   85): AudioPolicyService server died!
W/AudioSystem(   85): AudioFlinger server died!
W/IMediaDeathNotifier(   85): media server died
W/AudioSystem(  146): AudioFlinger server died!
W/IMediaDeathNotifier(  146): media server died
E/MediaPlayer(  146): error (100, 0)
E/MediaPlayer(  146): Error (100,0)
D/StatusBarService(  146): onCompletion called