私は現在、ビデオ プレーヤーを使用して Flex モバイル プロジェクトで苦労しています。基本的に、問題は、iOS モバイル デバイスで .MP4 ビデオをまったく再生できない、または少なくとも見ることができないことです (ビデオも音もありません。プレーヤー ビューは単に空です)。ソースを .FLV ビデオに置き換えるとすぐに、すべてが完全に機能します。
私が理解したものと同じコンポーネントを使用しているにもかかわらず、2 つのアプローチを試しました。
OSMF: VideoElement、MediaPlayer、MediaContainer、および MediaPlayerSprite を使用します。
private var media:VideoElement; private var mediaPlayer:MediaPlayer; private var mediaContainer:MediaContainer; private var mediaSprite:MediaPlayerSprite; protected function onViewCreationComplete(event:FlexEvent):void { media = new VideoElement(new URLResource("http://10.140.1.165/jobs/92/eproofing/in/pages/versions/1/page1/video.mp4")); mediaPlayer = new MediaPlayer(media); mediaContainer = new MediaContainer(); mediaContainer.addMediaElement(media); mediaSprite = new MediaPlayerSprite(mediaPlayer, mediaContainer); mediaSprite.addEventListener(MouseEvent.CLICK, onVideoSpriteClicked, false, 0, true); mediaSprite.mediaPlayer.addEventListener(TimeEvent.CURRENT_TIME_CHANGE, onVideoTimeChanged); videoContainer.height = manager.selectedPage.formatHeight; videoContainer.width = manager.selectedPage.formatWidth; videoContainer.addChild(mediaSprite); }
StageVideo: Video、NetConnection、および NetStream を使用 (StageVideo オブジェクトの使用は、実際には次のコードではまだ実装されていません。これは次のステップになります)
private var video:Video; private var ns:NetStream; private var nc:NetConnection; private var isVideoPlaying:Boolean = false; protected function onViewCreationComplete(event:FlexEvent):void { video = new Video(); nc = new NetConnection(); nc.connect(null); ns = new NetStream(nc); ns.client = {onMetaData:onMetaData}; ns.addEventListener(NetStatusEvent.NET_STATUS, onVideoLoaded); ns.play("http://10.140.1.165/jobs/92/eproofing/in/pages/versions/1/page1/video.mp4"); this.isVideoPlaying = true; } private function onVideoLoaded(event:NetStatusEvent):void { video.attachNetStream(ns); videoContainer.addChild(video); videoContainer.height = video.height = video.videoHeight; videoContainer.width = video.width = video.videoWidth; } private function onMetaData(o:Object):void { }
両方とも同じ結果でした: .FLV を使用している限り、ビデオが表示され、正しく再生されます 。このプロジェクトで使用したいフォーマット。これらの .MP4 ファイルには H.264 コーデックを使用していることを付け加えておきます。
私が間違っていることはありますか?
エミュレーターを使用している限り、両方の形式が機能していることに注意してください。.MP4 の問題は、アプリを iPad に展開した場合にのみ発生します。
これは、 Flash Builder 4.7 for Windows 7 ProでAIR 3.9を使用するモバイルFlex 4.6プロジェクトです。