- 浏览: 2111249 次
- 性别:
- 来自: 广州
文章分类
最新评论
-
ratlsun:
想请教下uc最新版本在android4.2和4.3版本上是不是 ...
UC浏览器8.3 (for iPhone)设计理念.“無”为而设 -
gly0920sky520123:
很有用哦,谢谢
DOS命令大全(经典收藏) -
chenyu0748:
UC加油,花哥加油~
UC浏览器8.3 (for iPhone)设计理念.“無”为而设 -
cnliuyix:
LZ搞点更有层次的吧,介个一般工程里根本用不到这么简单的。Si ...
Android 设计一个可单选,多选的Demo -
gang4415:
rgz03407@163.com
JSR规范,系统参数测试大全
作者:wuhua
;IJj*SB(A'Tt3
空间:htt://wuhua.3geye.net
Android J2ME $_c+q"l5AH
转载请保留上面的信息(请尊重知识产品)谢谢Android J2ME 8l9Hb^]~u
Android J2ME "omG3`!GLtb
3^3k/a}SD3]3
package com.ucweb.player;Android J2ME d4~i(k�j:Oz |
*Fu`%reo"m3
import java
.io.IOException;
c%`~'WW&vM3
Android J2ME 5?-P1Jkc#V{
import android
.app.Activity;Android J2ME #H)bYg2WgJ
import android.content.Context;
0lSnX4rU[3
import android.graphics.PixelFormat;
O(LaiSa3
import android.media.MediaPlayer;Android J2ME I5AWdt'u'oI
import android.media.MediaPlayer.OnBufferingUpdateListener;Android J2ME ,ED(kT)l'J"]
import android.media.MediaPlayer.OnCompletionListener;Android J2ME s*Zh;PKn)Fh}
import android.media.MediaPlayer.OnErrorListener;Android J2ME +g`&U9eCU
import android.os.Bundle;
Y6L7K2Z2a3
import android.util.Log;Android J2ME b(n+Fd0?2j)?E;[
import android.view.Menu;Android J2ME Z_G;t!W
import android.view.Surface;Android J2ME 3g*U4y8aSm(o
import android.view.SurfaceHolder;Android J2ME Up5sB|+zW;o
import android.view.SurfaceView;Android J2ME ,b;f/?3H5eP]
W
import android.view.Window;
(?ac+qu-RP6j6\~3
import android.view.Menu.Item;
?._2]&{
i)G3
Kkn(x#C$DN
DA3
public class VideoPlayer extends Activity implements OnErrorListener,
|Pc(L/n3
OnBufferingUpdateListener, OnCompletionListenerAndroid J2ME mW}3D,t4[r
{
l9mYK(GLc3
private static final String TAG = "PlayVideo";Android J2ME oV8z#@?fb)f�l9m
Android J2ME pl^ kR5_
private static final int PLAY_VIDEO = Menu.FIRST + 1;Android J2ME *c(tKYvY#p g
private static final int PLAY_MP3 = Menu.FIRST + 2;
oah1}8OPi3
private static final int STOP_PLAY_ID = Menu.FIRST + 4;
:vZ7y{mE3
]#[6H:e?3
private MediaPlayer mp;
M?qu-|g8s1hgf3
ut7~L,?
q/r3
private Preview mPreview;
1{R
^{omnX3
Android J2ME T3PG7`1\l
/** Called when the activity is first created. */
D)rFBr
t1V!T
f3
@Override
5|Md2dj(iJ^3
public void onCreate(Bundle icicle)Android J2ME yV ^;s9['V
{
BnO(CC3
super.onCreate(icicle);Android J2ME !G.v%t!xI0F
Log.v(TAG, "onCreate: ===> ");Android J2ME "G6ud6v�s
requestWindowFeature(Window.FEATURE_NO_TITLE);Android J2ME
qC
~/d.fR
getWindow().setFormat(PixelFormat.TRANSPARENT);
wXO3dZhF3
s6\j.F(TL8z3
mPreview = new Preview(this);
;[ j?m(My3
setContentView(mPreview);Android J2ME K*`sF]^
}
T0X3licaj3
4W/HMF,g(y3
private void playVideo()
9@l�?~zFB.P6F3
{
KNs3C[FR3
try
~R+b1Am
y3
{
9hP,E!q7\:c,LTy3
SurfaceView view = new SurfaceView(this);
N(f6` x5T?1dW3
Surface surface = view.getHolder().getSurface();
;iK W&B ej;h&mSp3
setContentView(view);
}]N2I?&Hhc3
$rqB%S6g"g
w)p5h!Z%Ne-R3
Log.v(TAG, "height: " + mPreview.getHeight());
6gHPe'`w5pYU|3
Log.v(TAG, "width: " + mPreview.getWidth());
fBR
h T6M3
mp = MediaPlayer.create(this, R.raw.mp3);Android J2ME 7UD#d2y9bzG
Android J2ME R3X8N,}0hn1H�PM W
mp.setOnErrorListener(this);
$`]HbT-k@(i%@5Oa3
mp.setDisplay(mPreview.getHolder().getSurface());Android J2ME
HO\8Fw-A
mp.prepare();
g
|`
OP7F8E3
Log.v(TAG, "Duration: ===>" + mp.getDuration());Android J2ME :v4gu`Wd
f&c
mp.start();Android J2ME |2kV2h w
}
'p4|7q+}{V{3
catch (Exception e)
4aF-`|,XsWnp3
{
4k9@Foxeb@�\3
//e.printStackTrace();
~}_1e{&n!k3
Log.e(TAG, "error: " + e.getMessage());
iRK-a9y3
stopPlay();Android J2ME 5oj;SXCr
}Android J2ME H$z.~i4]+f$\.n
}Android J2ME M$[^#s+U:u
dPuh�O{3
private void playMp3() throws IOExceptionAndroid J2ME �L*Yv hc*N7Q
{Android J2ME L@P7q&O
mp = MediaPlayer.create(this, R.raw.mp3);
'Mn5aqP
m"`3
mp.prepare();
%M#~]m'BfO3
Log.v(TAG, "Duration: ===>" + mp.getDuration());
o\YU
]NUH3
mp.start();Android J2ME G"T.kRo�m5q/u7C+R,X
}
*I[%zFL7u3
Android J2ME 4d J~5_8CyP(JT+Rp;k
private void stopPlay() {Android J2ME -a9]9mc
f|
if (mp != null) {Android J2ME rw|$d IG"]!i1Ap(@
mp.stop();Android J2ME :~-q�lT(Gs
A-Y
mp.release();Android J2ME a{;r:G@
}Android J2ME F%H@'D9Zb
}Android J2ME �g;{)\OB5C4`u
Android J2ME $?"z,Ww\E
@Override
9zm�A,A�f:f3
public boolean onCreateOptionsMenu(Menu menu)Android J2ME :F*OM#N(yj
{
E
n1Zj1x"b-g9N T3
boolean result = super.onCreateOptionsMenu(menu);Android J2ME ^i6tOO8c
menu.add(0, PLAY_MP3,"MP3");
${O.]L F$Ua3
menu.add(1, PLAY_VIDEO, "MP3");
c0aM!mv�u+`3~3
menu.add(1, STOP_PLAY_ID, "MP3");Android J2ME %{ef)]FRMi
return result;
7I:xU7X(R5Q(M3
}Android J2ME 9[d S9H`(K
9c%ETa5R3
@OverrideAndroid J2ME `R4m}7S1un)V6\
public boolean onOptionsItemSelected(Item item)Android J2ME QX@
Z T;lR
{Android J2ME w{F|We
Log.v(TAG, "option: " + item.getId());
%NM z?7x#l$R"O/J3
switch (item.getId()) {Android J2ME C
q&?-\`
F
case PLAY_MP3:
,U:\T)?P2gB3
try{
`-QH^S G3H2Z%k3
playMp3();
2c!N'jJ
| @d3
}catch(Exception e){
a$YQ)M3\3
}
|IwoW
tB.r3
break;Android J2ME z,e#@%k@
case PLAY_VIDEO:
U)wq
jP�i
Y%R3
playVideo();Android J2ME )jg"]w9\ M
break;
JDO`_\Q
??"E"e*}.N)V3
case STOP_PLAY_ID:Android J2ME X+~,H,w;B
}F3dG4}V
stopPlay();Android J2ME jM)T'PObG
break;
N#Bp,X7o�j9T8]T3
}Android J2ME .a8Et1e-g H
return super.onOptionsItemSelected(item);Android J2ME GI9r
W@Z
}Android J2ME
v|n
G6tN+t#lG
W \2CR e!K8X3
@Override
*O'n?u�@ Wjn3
protected boolean isFullscreenOpaque()Android J2ME `!jC8pT'X
{Android J2ME -W3G0pXu&@;E1J
// Our main window is set to translucent, but we know that weAndroid J2ME -C1KI*XA5s!Z@-q;}z
//will
O�` yc-\3
// fill it with opaque data. Tell the system that so it canAndroid J2ME dEN^?
//performAndroid J2ME Q*bYr2bw
// some important optimizations.Android J2ME %u_#PBN-?bFTI
return false;
l8V)W^GbM-~3
}Android J2ME [wmDC1l-u"U,N
Android J2ME rYV.I V xbO6ONd
@Override
~n
Q9k
P3
protected void onResume() {
&^ R|fs;ZJ8{+[wjr3
// Because the CameraDevice object is not a shared resource,
l5sfi}.sJ*u3
// it's very important to release it when the activity is paused.Android J2ME #OLT~G-C+k
super.onResume();
^d#@X}3
// mPreview.resume();Android J2ME 6e-_D M/m:rq
}
1`e@YW3
!iHR.Y JVbK3
@Override
9{
p?hQ:\3b"uL3
protected void onPause() {Android J2ME lK(H-L$cc3V'Z4}
f
// Start Preview again when we resume.Android J2ME loe"C0G/B'? I(E)`
super.onPause();
[RLq.s4} a3
// mPreview.pause();Android J2ME ZO N3i
F }9],D
}Android J2ME 3K
T?a1wt7h
Android J2ME ]E5i�ga/`6Qn
public void onError(MediaPlayer mediaPlayer, int what, int extra) {
Q6}n`&|3
Log.e(TAG, "onError---> what:" + what + " extra:" + extra);Android J2ME
g8}m#X*Pf
if (mediaPlayer != null) {
Nui ^x2L
s'x3
mediaPlayer.stop();Android J2ME ?
W�_
BON%N~
mediaPlayer.release();Android J2ME
{l5B
eAIh
}
R!C'KE8m,M4`:U }3
}Android J2ME s3d"A1Bo%gWV
Android J2ME %C~8@#K1`HF0e7c
public void onBufferingUpdate(MediaPlayer arg0, int percent) {Android J2ME 1}8vy#}1Bx
P;t
Log.d(TAG, "onBufferingUpdate---> percent:" + percent);Android J2ME IlHvR:Id
}Android J2ME ({!ba)O;bC�j
Android J2ME ?}.w2y�}'[l$^8Z
public void onCompletion(MediaPlayer arg0) {Android J2ME L#F"W
YPj\O$X
Log.d(TAG, "onCompletion---> finished");Android J2ME +f1CO9j*gg
}Android J2ME 2a1n)Vr\(|O4sNN
5g$Ek1?
]a sr3
}Android J2ME L"\,X~Q
J;q0a;_0H5g-F3
class Preview extends SurfaceView implements SurfaceHolder.Callback {Android J2ME q,p�M,NNB2d9i%_jeW
SurfaceHolder mHolder;Android J2ME $Jo4v,[3a7G
private boolean mHasSurface;
F"iw+h*|!Nu2UoR3
Android J2ME ZD&k,j'm-qs|"K+F
Preview(Context context) {Android J2ME tnQ,z i
super(context);
OG
rE}ia3
0n-@7y E/f5q-?3
mHolder = getHolder();
z%sH|([`+F,c5r"f3
mHolder.addCallback(this);
7_Tf3kY\
CK3
mHasSurface = false;
X+m[lVA?g3
S0??
iz;M.d Q3
mHolder.setFixedSize(320, 240);Android J2ME e$K1\!B'nA
//mHolder.setFixedSize(192, 242);
Q1f/@\|u�b/r3
}
/k8nC'pr3
Android J2ME tk1b|%mI4?9ep
public void surfaceCreated(SurfaceHolder holder) {
g*tu(Nr@'AC$q3
// The Surface has been created, start our main acquisition thread.
~*x%@+`%_"ls3
mHasSurface = true;
AC3^e"^;l;f c3
// return true;
3_#c2Qx5?3
}
9iBn-d,e1mb3
Android J2ME [kB�s,O |Jo
public void surfaceDestroyed(SurfaceHolder holder) {Android J2ME /Y"H�^,t~#hb
// Surface will be destroyed when we return. Stop the preview.
?k/O4d)yP3t3
mHasSurface = false;Android J2ME (H4H+P!`
yZ:[3Rv
^
}
lR HC7Bfb3
Android J2ME Sh$?nE*XR!W2F&w
public void surfaceChanged(SurfaceHolder holder, int format, int w,
|XoI6sV2j6s3
int h) {Android J2ME -|V[|6qx,U
// Surface size or format has changed. This should not happen inAndroid J2ME Uo'Xq9W2_mW~d
//thisAndroid J2ME .d.DD%Z1iu
// example.
Z&S`Z+Y,]}p8tn3
}}
YsZ6Sr+z3
Android J2ME e;oomc�@SWq[
现在对这个东西还进行摸索阶段不知道他有没有提供对流媒体的支持。如果可以直接支持流媒体的话。那真是太好了。这样就可以用java来写流媒体。 继续研究Android J2ME T?:^�ZE6N"}
评论
真机上也不是流媒体, HTTP Progressive download而已...
大家多摸索摸索...
小弟我在研究这块东西,不过发现一直不成功。老出错。发现网络对这块也没有比较深入的研究,看了MideaPlayer,那些APIs也是少的可怜,比较简单。
大家多摸索摸索...
发表评论
-
Android编程之实现GPS定位
2009-04-01 09:35 2813在几个月前,开发式手机联盟推出自己的Android手机雏形时, ... -
gsm call命令向Android模拟器打电话
2009-03-11 11:31 2594通过gsm call命令可以像Android 模拟器打电话 ... -
Android签名用keytool和jarsigner制作apk文件
2009-03-05 15:55 7346原文地址:http://www.android123.com ... -
Android1.1移植点SDK兼容性提示
2009-02-18 13:45 0有关2009年2月版最新的Android 1.1 SDK移植相 ... -
Android 源码分析-打电话和发短信
2008-12-24 10:20 200511. ITelephony接口和ISms接口以及AIDL 在我 ... -
处理Android文件访问问题。
2008-11-18 15:32 5855今天在设计数据保存的时候遇到一个问题。 以前把数据保存到tmp ... -
Android开发中的logcat工具使用
2008-11-14 11:26 3939这是摘录androidin.com的一篇文章,对于学习Andr ... -
Android的ADB工具使用
2008-11-14 10:50 2759adb(Android Debug Bridge)是Andr ... -
Android 调试桥(adb)是多种用途的工具,该工具可以帮助你你管理设备或模拟器的状态。 可以
2008-10-30 14:20 5106Android 调试桥 http://www.androidi ... -
推荐一个在线编辑Android的工具给大家用下
2008-10-28 16:20 2412http://www.droiddraw.org/ 上面是 ... -
Google发布Android平台发展蓝图
2008-10-28 13:39 1480Google 已经发布了Android 平台的短期发展蓝图 , ... -
AndroidDialogDemo
2008-10-28 11:58 1226private void showDialog(String ... -
Android 插件好强悍啊
2008-10-27 11:30 1609以前都是用文本来写布局代码,今天更新了下Eclipse,发现写 ... -
HI,大家用的是Eclipse那个版本开发Android
2008-10-27 10:57 4366我用的是Eclipse 3.3 + ADT0.8 但是却发现不 ... -
高焕堂android中文书全,电子文件for version 1.0
2008-10-25 11:09 3900高焕堂android中文书全,电子文件for version ... -
用Ant 来编译打包您的Anroid应用程序。
2008-10-22 14:32 2370通过 activityCreator.py --out myp ... -
使用BroadcastReceiver实现开机启动Service或Activity
2008-10-20 19:32 3017使用BroadcastReceiver实现开机启动Servic ... -
G1的又一新的模拟器
2008-10-15 09:57 1602这是一款新的主题,比较漂亮, For those t ... -
Android 设计一个可单选,多选的Demo
2008-10-13 14:24 9891Android 提供了相当多的UI,在android.widg ... -
TestGrid Adnroid
2008-10-08 15:02 1555package com.atest ; import ...
相关推荐
Android SipDemo是一个示例应用,它展示了如何在Android平台上实现网络电话功能,特别是针对Android 2.3(Gingerbread)及以上版本。这个项目基于Android的SIP(Session Initiation Protocol)API,这是一种用于...
在Android平台上,RTSP(Real-Time Streaming Protocol)是一种广泛用于实时流媒体的协议,它允许设备从服务器获取音频、视频...通过深入研究DEMO代码,你可以掌握更多关于Android多媒体播放和RTSP协议的实际应用知识。
ijkplayer 是一个开源的跨...通过这个“ijk Android视频播放器demo”,开发者可以学习如何利用 ijkplayer 创建一个功能完善的视频播放应用,同时也能了解到在 Android 平台上开发多媒体应用所涉及的关键技术和实践。
"100多个Android Demo的整合"提供了一个宝贵的资源库,供开发者深入理解和探索Android应用开发的各种细节。这个压缩包包含了丰富的示例代码,涵盖了Android SDK中的多种功能和组件,为初学者和经验丰富的开发者提供...
"Android实例Demo集合"这个压缩包文件显然包含了一系列用于教学和实践的Android项目,旨在帮助开发者深入理解Android平台的工作原理和开发技巧。以下是对这些实例可能涵盖的一些关键知识点的详细说明: 1. **基本...
1. **AndroidManifest.xml**:每个Android应用都有一个清单文件,它定义了应用的基本信息,如应用名、权限、活动(Activity)、服务(Service)等。在Demo中,这个文件通常会包含必要的组件声明,以便运行和测试。 ...
`SurfaceView`是一个用于显示多媒体数据的视图,它在UI线程之外创建了一个独立的渲染表面,有利于视频渲染性能的提升。`MediaPlayer`则是Android系统提供的媒体播放器,可以播放各种音频和视频格式。将两者结合,...
Vitamio是一个开源的Android多媒体框架,支持多种视频和音频格式,包括RTSP、RTMP等流媒体协议,为开发者提供了便捷的视频播放解决方案。 首先,我们需要理解Android的多媒体播放原理。在Android系统中,...
总的来说,基于腾讯云视频SDK的Android视频通话demo涵盖了多媒体通讯的多个核心知识点,包括SDK集成、权限管理、音视频流控制、UI设计、事件监听和异常处理等。理解并熟练掌握这些内容,将有助于你构建自己的高质量...
这个压缩包"Android开发的各种demo"显然是一个宝贵的资源库,包含了作者长时间积累和整合的实例代码,旨在帮助初学者快速上手Android移动应用的开发。让我们深入探讨一下这些可能包含的知识点: 1. **环境配置**:...
在Android平台上开发一款视频播放器应用是一个常见的任务,尤其对于那些希望实现自定义播放功能或者增强用户体验的...通过深入研究这个项目,开发者可以掌握Android多媒体处理、UI设计以及活动管理等多个关键知识点。
总的来说,Android海康摄像头调用demo是一个实用的教学实例,它揭示了如何在Android平台上高效地使用海康威视的SDK进行摄像头控制,同时也展示了JNI和多媒体处理在Android应用开发中的重要性。通过深入学习和实践这...
这个技术基于Internet工程任务组(IETF)的实时传输协议(RTP)、实时控制传输协议(RTCP)和互动式网络流媒体(Interactive Connectivity Establishment,ICE)等标准,使得开发者能够构建高质量的多媒体通信应用,...
在Android平台上,开发一款视频和音频播放应用是常见的任务,涉及到多媒体处理和用户界面交互等多个技术领域。这个"Android 视频音频播放 demo 实例源码下载"提供了一个宝贵的资源,帮助开发者理解和实现这一功能。...
【大华Android视频录制demo】是一个专为Android平台设计的视频录制示例应用,它集成了多种...此外,对于Android开发新手,这也是一次很好的学习机会,能深入理解Android多媒体处理、文件管理和权限控制等方面的知识。
`VideoCutAppendTest`这个demo项目很可能是包含了一个简单的实现以上功能的代码示例。它可能包括了处理媒体文件的工具类、设置操作参数的界面,以及执行实际操作的后台任务。开发者可以通过查看源码,了解如何在实际...
1. **Binder**:Android系统的核心IPC机制,它允许一个进程的对象被其他进程调用,就像对象在本地一样。Binder是Android独有的,实现了低级别、高性能的接口,使得服务可以在不同的进程中运行并进行通信。 2. **IPC...
1. **MediaRecorder**: MediaRecorder是Android系统提供的一个类,用于处理多媒体文件的录制。在这个Demo中,MediaRecorder用于设置音频和视频源、编码器、输出格式等参数,并启动录制过程。例如,设置视频源为...
IjkPlayer是FFmpeg的Android和iOS移植版本,FFmpeg是一个跨平台的多媒体处理框架,能够解码、编码、转换和流化音频和视频。IjkPlayer的优势在于其出色的性能和广泛的格式支持,包括RTSP和RTMP。 RTSP是一种用于控制...
在Android平台上,开发一款应用来预览基于UVC(Universal Video Class)协议的摄像头,并实现截图和录屏功能,是一项技术...对于Android开发者来说,这是一个深入学习和理解Android多媒体处理和USB设备通信的好例子。