ios和android播放影片

ios

//

//  movieplayercontroller.h

//  sgcard

//

//  Created by Apple on 13-9-10.

//

//

#import
<MediaPlayer/MediaPlayer.h>

#import "movieplayer.h"

#import "EAGLView.h"

@interface
MoviePlayerContorl : NSObject
<UIAccelerometerDelegate,
UIAlertViewDelegate, UITextFieldDelegate,UIApplicationDelegate>

{

UIWindow *window;

MPMoviePlayerController* movieController;

CMoviePlayer *
moviePlayer;

//EAGLView *view;

UIButton * btnJump;

}

- (void) PlayVideo : (CMoviePlayer*)movie : (NSString*)strFileName : (NSString*)strFileType;

- (void) Finished : (id)sender;

- (void) JumpOver : (id)sender;

- (void) play;

// 用于 iPhone
中点击 Home 键后,程序挂起前要调用下面的函数

- (void)applicationSuspend:(NSNotification
*)notification;

// 当挂起的程序重新进入运行时,会调用下面的函数

- (void)applicationResumed:(NSNotification
*)notification;

@end

//

//  movieplayercontroller.cpp

//  sgcard

//

//  Created by Apple on 13-9-10.

//

//

#import "movieplayercontroller.h"

#import "cocos2d.h"

#import "GameAdapt.h"

//用于获取 GameInfo 中的信息

#import "../../data/gameinfo.h"

usingnamespacesgcard;

usingnamespacecocos2d;

@implementation MoviePlayerContorl

- (void) PlayVideo : (CMoviePlayer*)movie : (NSString*)strFileName : (NSString*)strFileType

{

moviePlayer = movie;

NSString *path = [[NSBundle mainBundle] pathForResource : strFileName ofType :
strFileType];

movieController
= [[MPMoviePlayerControlleralloc] initWithContentURL:[NSURLfileURLWithPath:path]];

NSNotificationCenter* notification = [NSNotificationCenterdefaultCenter];

[notification
addObserver : selfselector:@selector(Finished :) name
:MPMoviePlayerPlaybackDidFinishNotificationobject :
movieController];

movieController.scalingMode = MPMovieScalingModeAspectFill;

movieController.controlStyle = MPMovieControlModeDefault;

//下面代码设置播放动画的界面大小,由于 iPhone
上的设置大小跟真实尺寸差1倍,而 ipad
是相等的

CCSize size     =
CGameAdapt::get()->size();

//将 view 和 window
对象生成提前到这里来为了下面的代码需要

//view = [EAGLView
sharedEGLView];

//且
window.screen.scale 在 iPhone 中为2, ipad 中为1. 具体关系可能要请教做 ios 屏幕适配的人

window = [[UIWindow alloc] initWithFrame :
[[UIScreen mainScreen] bounds]];

float coeffi    =
CGameAdapt::get()->coefficient();

float x      
  = CGameAdapt::get()->x() / window.screen.scale;

float y      
  = CGameAdapt::get()->y() / window.screen.scale;

float width     =
( size.width * coeffi ) / window.screen.scale;

float height    =
( size.height * coeffi ) / window.screen.scale;

[movieController.view setFrame:CGRectMake( x, y, width,
height )];

[movieController.viewsetBackgroundColor : [UIColorclearColor]];

float bwidth    =
( 205 * coeffi ) / window.screen.scale;

float bheight   = (
69 * coeffi ) / window.screen.scale;

float bx     
  = width - bwidth - 10;

float by     
  = height - bheight - 10;

btnJump = [[UIButton alloc]initWithFrame:CGRectMake(x+bx, y+by , bwidth, bheight)];

//btnJump.titleLabel.font=[UIFont boldSystemFontOfSize:15.0];

//[btnJump setTitle:@"play"
forState:0];

//[btnJump
setBackgroundImage:[UIImage imageNamed:@"yellow_middle_btn.png"]
forState:0];

[btnJumpsetBackgroundImage:[UIImageimageNamed:@"UI_button_new_tgjq0000.png"]
forState:UIControlStateNormal];

[btnJumpsetBackgroundImage:[UIImageimageNamed:@"UI_button_new_tgjq0000_1.png"]
forState:UIControlStateHighlighted];

[btnJumpaddTarget:selfaction:@selector(JumpOver:)
forControlEvents:UIControlEventTouchUpInside];

//设置监听函数

//监听是否触发home键挂起程序.

[[NSNotificationCenterdefaultCenter]
addObserver:selfselector:@selector(applicationSuspend:)
name:UIApplicationWillResignActiveNotificationobject:nil];

//监听是否重新进入程序程序.

[[NSNotificationCenterdefaultCenter]
addObserver:selfselector:@selector(applicationResumed:)
name:UIApplicationDidBecomeActiveNotificationobject:nil];

}

- (void) Finished : (id)sender

{

//动画结束后移除监听的设置,以防止第二次绑定监听函数时候出现崩溃

[[NSNotificationCenterdefaultCenter]
removeObserver:self];

[movieController.viewremoveFromSuperview];

moviePlayer->close();

[self release];

}

- (void) JumpOver : (id)sender

{

[movieControllerstop];

}

- (void) play

{

//[view addSubview :
movieController.view];

//[view sendSubviewToBack :
view];

[windowaddSubview : movieController.view];

[windowaddSubview : btnJump];

[windowmakeKeyAndVisible];

[movieControllerplay];

}

- (void)dealloc

{

[movieControllerrelease];

[windowrelease];

[super dealloc];

}

// 用于 iPhone
中点击 Home 键后,程序挂起前要调用下面的函数

- (void)applicationSuspend:(NSNotification
*)notification

{

[movieControllerpause];

}

// 当挂起的程序重新进入运行时,会调用下面的函数

- (void)applicationResumed:(NSNotification
*)notification

{

//重新播放已暂停的动画

[movieControllerplay];

}

@end

android

时间: 2024-10-18 22:28:41

ios和android播放影片的相关文章

Android 4.3实现类似iOS在音乐播放过程中如果有来电则音乐声音渐小铃声渐大的效果

目前Android的实现是:有来电时,音乐声音直接停止,铃声直接直接使用设置的铃声音量进行铃声播放. Android 4.3实现类似iOS在音乐播放过程中如果有来电则音乐声音渐小铃声渐大的效果. 如果要实现这个效果,首先要搞清楚两大问题: 1.来电时的代码主要实现流程. 2.主流音乐播放器在播放过程中,如果有来电,到底在收到了什么事件后将音乐暂停了? 一:来电时的代码主要实现流程 我不是第一研究来电代码的人,网上已经有高手对这个流程剖析过,不是不完全符合我的要求,我参考过的比较有价值的是如下两个

iOS - 使用音乐的背景播放功能,使用MediaPlayer框架播放影片(Swift)

1. 使用音乐的背景播放功能 (1) 导入音频播放框架 import AVFoundation (2) 创建音频播放对象 //初始化音频播放器对象,并将音频播放对象,作为视图控制器类的属相. var audioPlayer:AVAudioPlayer = AVAudioPlayer() override func viewDidLoad() { super.viewDidLoad() // Do any additional setup after loading the view, typic

背景音乐的自动播放(兼容 ios 和 android)

ios 为了节省用户流量,对于 audio 和 video标签的 preload 和 autopaly 标签 会自动拦截, 除非用户手动点击 交互才会执行 . 但是对于背景音乐,又必须加载的时候就要执行,怎么办,直接调用js 来自动触发. <audio id="bgaudio" src="./media/bg-music.mp3" loop="loop"></audio> <script type="tex

ios和android适配

一些情况下对非可点击元素如(label,span)监听click事件,ios下不会触发 解决方案:css增加cursor:pointer; 三星手机遮罩层下的input.select.a等元素可以被点击和focus(点击穿透) 问题发现于三星手机,这个在特定需求下才会有,因此如果没有类似问题的可以不看.首先需求是浮层操作,在三星上被遮罩的元素依然可以获取focus.click.change),有两种解决方案: 1.是通过层显示以后加入对应的class名控制,截断显示层下方可获取焦点元素的事件获取

Unity3D 语音接入适用于pc、ios、android

语音接入 考虑到pc与ios.android三端的混服情况,所有录音的格式均存储为mp3格式,也是unity推荐的音频文件方式 前提:目前比较成熟的语音模块由科大讯飞平台提供的,目前我们需要的功能是把语音转化成文字,因此我们只需要下载相应的语音识别模块就可以了. 1)进入科大讯飞官网下载相应平台的sdk,目前我们只需要免费的语音识别就可以了,要创建相应的应用才能下载,里面的demo提供边录音边翻译的功能. 2)pc端的没有提供边录边能,要想在pc版进行录音可引入第三方库进行录音或者使用unity

ios与android设备即时语音互通的录音格式

在做iphone开发之前,我(ray)对声音格式了解的相当少.我知道一些“wav”和“mp3”声音格式的差异,但是我肯定不能准确地告诉你“AAC”.“CAF”是什么格式的声音文件,同时也不知道在MAC上最好的转换音频文件的方法是什么. 我深知,假如你想要成为一名合格的iphone开发者,你必须对声音文件数据格式,转换,录音和使用什么音频操作API有个基本的了解. 这篇文章是三篇涵盖音频开发教程中的第一篇.在这篇文章中,我们将会从文件和数据格式开始. 文件格式和数据格式 首先我们要知道的是,对每个

app测试教程:ios与android的区别

App测试中ios和Android的区别: 1.Android系统(http://www.maiziedu.com/course/android-px/)手机长按home键呼出应用列表和切换应用,然后右滑则终止应用: 2.多分辨率测试,Android端20多种,ios较少: 3.手机操作系统,Android较多,ios较少且不能降级,只能单向升级:新的ios系统中的资源库不能完全兼容低版本中的ios系统中的应用,低版本ios系统中的应用调用了新的资源库,会直接导致闪退(Crash): 4.操作习

【转载】App测试中ios和Android的区别:

App测试中ios和Android的区别: 1.        Android长按home键呼出应用列表和切换应用,然后右滑则终止应用: 2.        多分辨率测试,Android端20多种,ios较少: 3.        手机操作系统,Android较多,ios较少且不能降级,只能单向升级:新的ios系统中的资源库不能完全兼容低版本中的ios系统中的应用,低版本ios系统中的应用调用了新的资源库,会直接导致闪退(Crash): 4.        操作习惯:Android,Back键是

HTML5会砸掉iOS和Android的饭碗么?

我们第一次谈论HTML5要改变世界大概是因为乔布斯,他坚持在iOS上不兼容Flash,在Adobe统治多媒体开发的那个年代,这需要付出极大的勇气.这么多年过去了,虽然所有人都在谈论HTML5,但是大部分人甚至都忘了它还是一个仍在完善中的体系. 2007年W3C(万维网联盟)立项HTML5,直至2014年10月底,这个长达八年的规范终于正式定稿.接下来,HTML5将真正开始颠覆原生 (Native) App 世界.虽然这种危言耸听已经让人有点厌烦.但是如果回顾HTML这些年走过的路,你就不会再怀疑