`
fonter
  • 浏览: 869217 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

J2ME实现RTSP(只有在支持的手机才能用)

    博客分类:
  • J2ME
阅读更多

最近在研究J2ME实现RTSP协议,在索爱开发网站中看到一个类,但只能用于支持RTSP协议的手机,大部分手机需利用J2ME MMAPI实现,而对于自己实现的RTSP,虽然做了一些测试,调通了一点,但还没能真正运行,不知播放的效果如何,会不会像HTTP连接那么烂!

 

import javax.microedition.lcdui.*;
import javax.microedition.midlet.*;
import javax.microedition.media.*;
import javax.microedition.media.control.*;


/**
 * A simple example of the MMAPI (JSR 135) support for Streaming Video
 * with the Sony Ericsson V800.
 * 
 * This code is part of the Tips & Tricks section at 
 * www.SonyEricsson.com/developer
 *
 * COPYRIGHT All rights reserved Sony Ericsson Mobile Communications AB 2005.
 * The software is the copyrighted work of Sony Ericsson Mobile Communications AB.
 * The use of the software is subject to the terms of the end-user license 
 * agreement which accompanies or is included with the software. The software is 
 * provided "as is" and Sony Ericsson specifically disclaim any warranty or 
 * condition whatsoever regarding merchantability or fitness for a specific 
 * purpose, title or non-infringement. No warranty of any kind is made in 
 * relation to the condition, suitability, availability, accuracy, reliability, 
 * merchantability and/or non-infringement of the software provided herein.
 *
 */
public class StreamingVideo extends MIDlet implements CommandListener, PlayerListener, Runnable{
    
    
    private Display myDisplay; 
    private Form myForm;
 
    private Thread streamingThread;
    private Player myPlayer;
    private VideoControl vc;
    private boolean running=false;
    
    public StreamingVideo() {
        myDisplay = Display.getDisplay(this);
        myForm=new Form ("Streaming Test");
        myForm.addCommand(new Command("Exit", Command.EXIT,0));
        myForm.addCommand(new Command("Start", Command.OK,0));
        myForm.setCommandListener(this); 
    }
   

    protected void startApp() throws MIDletStateChangeException {
        myDisplay.setCurrent(myForm);  
        streamingThread = new Thread(this);
    }

    protected void pauseApp() {}

    protected void destroyApp(boolean unconditional) {
        try {
            myPlayer.stop();
            myPlayer.close();
        }
        catch( Exception e ) {
            log("Exception: " + e.toString());        
        }
    }
    
   /**
    * Inits and starts the Player for Video Streaming
    */
    private void startStreaming(){
        try{
             myPlayer = Manager.createPlayer("rtsp://yourServer/mobile/realmp3.3gp");
             myPlayer.addPlayerListener(this);
             myPlayer.realize();
              // Grab the video control and set it to the current display.
              vc = (VideoControl)myPlayer.getControl("VideoControl");
              if (vc != null) {
                myForm.append((Item)vc.initDisplayMode(vc.USE_GUI_PRIMITIVE, null));
                // sets the display size of the video.
                vc.setDisplaySize(120,160);  
              }          
              myPlayer.start(); 

         }catch(Exception e){
                log("Exception: " + e.toString());
                myForm.append("Exception: " + e.toString());
         }

    } 
   
    public void commandAction(Command c, Displayable s){
        if(c.getCommandType()==Command.EXIT){
            running=false;
            notifyDestroyed();
        }else{
            streamingThread.start();
        }
    }
    
    
     /**
      * PlayerListener Interface method, logs all player event.
      */
     public void playerUpdate(Player player, String event, Object eventData){
        log(" ** playerUpdate: " + event + " **");
       
     }

     public void log(String msg){
        System.out.println(msg);
     }
     
     public void run() {
         running=true;
         startStreaming();
         while(running){
             Thread.yield();
         }
     }     
}

 

开发RTSP的相关资料:

Experiments in Streaming Content in Java ME(1) http://fonter.iteye.com/blog/425372
Experiments in Streaming Content in Java ME(2) http://fonter.iteye.com/blog/425392
Experiments in Streaming Content in Java ME(3) http://fonter.iteye.com/blog/425427

 

 

keyRepeated和keyPressed处理 http://fonter.iteye.com/blog/433408 

少用System.out.println()吗?http://fonter.iteye.com/blog/423871
读取流最快方式 http://fonter.iteye.com/blog/422412
java简单解析docx、pptx、xlsx文档 http://fonter.iteye.com/blog/420319
Log4j在Java WebApp的配置 http://fonter.iteye.com/blog/418570
J2ME to android之学习笔记 http://fonter.iteye.com/blog/416112
安装Jar提示“jar文件无效”的另一个奇怪原因 http://fonter.iteye.com/blog/414188
J2ME代码认证证书的支持情况 http://fonter.iteye.com/blog/413357
S40平台播放多媒体时内存优化 http://fonter.iteye.com/blog/413022
SUN的J2ME源代码下载 http://fonter.iteye.com/blog/412094

分享到:
评论
2 楼 fonter 2009-07-13  
longzy 写道
你去看lg 手机的标准吧。支持 vedio stream ,我不晓得这个是不是 rstp。

有没有 好的 rstp 的 服务器端推荐?


现在好几款机子支持,要做到通用,还是得写CODE,我所知道的像N73, N80, N91, K750i, V800, Z520i, K600, Z800i等都支持RTSP,但目前我手头没有支持的手机,我下载了Helix Server做测试用的,那个比较好目前不是很清楚!



1 楼 longzy 2009-07-13  
你去看lg 手机的标准吧。支持 vedio stream ,我不晓得这个是不是 rstp。

有没有 好的 rstp 的 服务器端推荐?

相关推荐

    j2me_向rtsp服务器请求,获得playload

    描述中提到,这些代码是从网络上搜集而来,目的是实现向RTSP服务器请求数据并在J2ME支持的手机上进行播放。这意味着代码可能包含了从建立连接、发送控制命令到接收和解析流媒体数据的整个流程。开发者可以下载这些...

    sd.rar_J2me 流媒体_j2me_j2me play_j2me streaming_流媒体 j2me

    在移动设备开发领域,Java 2 Micro Edition(J2ME)是一个重要的平台,它为小型设备如手机和嵌入式系统提供了运行环境。本文将深入探讨如何在J2ME平台上实现流媒体技术,主要关注如何播放流媒体内容。标题中的"sd....

    基于J2ME的手机视频播放系统的开发

    这通常需要开发者对不同手机硬件和操作系统版本的差异有深入了解,并通过J2ME的可移植性特性来实现广泛的设备支持。 【标签分析】 "基于J2ME的手机视频播放系统的开发"标签再次强调了项目的核心技术是J2ME,同时也...

    J2ME视频播放实现的简单代码

    标题中的“J2ME视频播放实现的简单代码”意味着我们将探讨如何在Java 2 Micro Edition (J2ME)平台上开发一个简单的视频播放功能。J2ME是Java的一个轻量级版本,常用于移动设备和嵌入式系统,如早期的手机和智能电器...

    使用J2ME开发,可以通过手机,即时查看交通监视器实时录像

    标题和描述中提到的是利用Java 2 Micro Edition (J2ME) 技术来...总之,通过J2ME开发能在手机上实时查看交通监控的应用,涉及了移动设备编程、网络协议、资源管理和用户界面设计等多个方面,对开发者的技术要求较高。

    J2ME播放器源代码

    通过分析和理解这些关键组件,开发者可以学习如何在J2ME平台上实现一个功能完备的多媒体播放器。这不仅可以提升他们的编程技能,也能帮助他们更好地理解和适配各种移动设备的限制。同时,这样的源代码也适用于教学和...

    j2me流媒体播放.rar

    在 J2ME 中,使用 Socket 或 HttpConnection 来实现网络通信。RTSP 用于控制流媒体服务器,如播放、暂停和停止,而 RTMP 和 HTTP 用于实际的数据传输。 3. **数据缓冲**: 由于网络环境可能不稳定,所以数据缓冲是...

    J2ME Internet Radio

    **在线音乐播放**:在J2ME中,网络收音机的核心是通过HTTP或RTSP(Real Time Streaming Protocol)协议获取音频流,并使用Media Player API进行播放。Media Player API是J2ME的一部分,可以处理多种音频格式,如MP3...

    J2ME视频播放程序

    这可能包含了基本的视频播放功能,供开发者学习和理解如何在J2ME平台上实现视频播放。 总的来说,J2ME视频播放程序的开发涉及了多媒体处理、网络通信、用户交互等多个方面,是一个综合性的工程,需要对J2ME平台、...

    J2ME 无线音乐随身听

    为了实现这一功能,J2ME应用程序需要处理文件I/O操作,解析音频文件头部信息,并使用Java Media Framework (JMF) 或其他类似库进行解码和播放。 在线播放则意味着用户可以通过无线网络直接流式播放音乐。这涉及到...

    j2me手要移动开发技术播放器

    4. **流媒体处理**: 对于在线流媒体,J2ME 中的 Player API 支持实时传输协议 (RTSP) 和简单对象访问协议 (SOAP) 等,可以实现网络广播和点播。开发者需要理解如何处理网络连接,以及如何处理流媒体数据的缓冲和播放...

    一款直线直播手机软件的(j2me)发编译

    标题中的“一款直线直播手机软件的(j2me)发编译”指的是使用Java ME(J2ME,Java 2 Micro Edition)平台开发的一款适用于手机的直播应用的编译过程。Java ME是一种轻量级的Java平台,常用于移动设备、嵌入式系统等...

    Sprint J2ME Requirements v2.2

    - **RTSP/RTP/RTCP**:描述了实时流协议、实时传输协议及其控制协议的使用要求。 #### 3. 配置与配置文件 (Profile and Configuration) - **基准平台**:规定了平台的基础配置,包括Qualcomm虚拟机支持、Sprint...

    面向JAVA手机的有声E书流播放系统的设计.pdf

    其中,数据仓库用于维护所有可点播的有声读物的相关信息,Servlet实现手机客户端与数据仓库的通信,流媒体服务器用于存放有声读物,并以音频流的形式将其传送给手机用户。手机终端为3G手机,支持J2ME及MMAPI,运行流...

    手机移动视频监控系统方案设计

    目前, 手机移动监控系统所采用的技术主要是利用J2ME 的P layer播放器技术, 进行现场监控, 不仅需要手机支持RTSP等实时流媒体协议, 而且对移动互联网有一定的要求。本文利用J2ME 的Sprite, 以动画的效果来显示...

    fk.zip_视频监控系统_远程视频监控

    《基于J2ME的远程视频监控系统设计与实现》 在现代信息技术的推动下,视频监控系统已经不再局限于本地操作,而是发展到了远程监控的新阶段。"fk.zip_视频监控系统_远程视频监控"这个压缩包文件就包含了这样一个基于...

    demo.rar_DEMO

    4. **实时流协议**:可能使用RTSP(Real-Time Streaming Protocol)或MPEG-DASH等协议来实现视频流的控制和传输。 5. **J2ME多媒体框架**:如MIDP(Mobile Information Device Profile)的CLDC(Connected Limited ...

    视频播放器课程设计报告.pdf

    Eclipse的插件机制是其强大之处,它允许开发者通过添加插件扩展其功能,不仅支持多种编程语言,还能实现如配置管理等多种功能。 对于Android应用程序,其基本构成包括四大组件:活动(Activity)、服务(Service)...

Global site tag (gtag.js) - Google Analytics