我正在开发一个IOS应用程序(使用Storyoard).我有一个ViewController:
//movieViewController.h
#import <UIKit/UIKit.h>
#import <MediaPlayer/MediaPlayer.h>
@interface movieViewController : UIViewController {
MPMoviePlayerViewController *moviePlayer;
}
@property (strong, nonatomic) MPMoviePlayerViewController *moviePlayer;
-(void) playMovie;
@end
//movieViewController.m
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view.
[self playMovie];
}
-(void)playMovie
{
NSString *videoPath = [[NSBundle mainBundle] pathForResource:@"movie"
ofType:@"mov"];
moviePlayer = [[MPMoviePlayerViewController alloc] initWithContentURL:[NSURL
fileURLWithPath:videoPath]];
[self presentMoviePlayerViewControllerAnimated:moviePlayer];
}
Run Code Online (Sandbox Code Playgroud)
当我运行时,我看到我的viewController带有"正在加载...",这需要永远.

我正在尝试在我的iOS应用中播放远程MKV视频,但该视频无法播放。
我尝试使用AVKit / AVFoundation和MobilePlayer,它正在处理MP4文件。
这是我的代码示例:
let videoURL = NSURL(string: url)! // http://localhost:4000/../file.mkv
playerView = AVPlayer(URL: videoURL)
playerViewController.player = playerView
self.presentViewController(playerViewController, animated: true) {
self.playerViewController.player!.play()
}
Run Code Online (Sandbox Code Playgroud)
let videoURL = NSURL(string: url)! // http://localhost:4000/../file.mkv
let playerVC = MobilePlayerViewController(contentURL: videoURL)
playerVC.title = videoURL.lastPathComponent
playerVC.activityItems = [videoURL]
self.presentViewController(playerVC, animated: true) {
playerVC.play()
}
Run Code Online (Sandbox Code Playgroud) 我在我的网站上使用了mediaelement.js,我用的例子是带有H.264编解码器的.mp4文件,适用于所有浏览器,但是当我发布网站时,在我的本地主机上不适用于任何版本的Internet Explorer没有任何问题(闪回后备效果很好),但在我的服务器上不起作用.
我使用的代码是:
<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>VIDEO HTML5</title>
<script type="text/javascript" src="player_files/jquery.js"></script>
<script type="text/javascript" src="player_files/mediaelement-and-player.min.js"></script>
<link href="player_files/mediaelementplayer.min.css" rel="Stylesheet" />
</head>
<body>
<video id="video1" src="http://www.teletica.com/html5/videos/precious.mp4" width="640" height="360" poster="http://www.teletica.com/html5/videos/precious.jpg" controls="controls" preload="none"></video>
<video width="640" height="360" id="video2" poster="videos/precious.jpg" controls="controls" preload="none">
<source type="video/mp4" src="http://teletica.com/html5/videos/precious.mp4" />
<source type="video/webm" src="http://teletica.com/html5/videos/precious.webm" />
<object width="640" height="360" type="application/x-shockwave-flash" data="player_files/flashmediaelement.swf">
<param name="movie" value="player_files/flashmediaelement.swf" />
<param name="flashvars" value="controls=true&file=http://teletica.com/html5/videos/precious.mp4" />
<img src="player_files/precious.jpg" width="640" height="360" alt="Here we are" title="No video playback capabilities" />
</object>
</video>
<script type="text/javascript">
$('video, audio').mediaelementplayer(); …Run Code Online (Sandbox Code Playgroud) 我从远程服务器下载视频并将其保存在应用程序数据目录中.完成后,我将其URL传递给视频播放器(我窗口上的UI元素).然后我的应用程序崩溃了.
这只发生在Marshmallow(Android 6.0版)上.我已经在Lollypop(4-5设备)上进行了测试,但它在那里工作得很好.
我尝试了不同的解决方案,但仍无法解决此问题.它真的杀了我.如果您有任何想法,请帮忙.我会很感激.
这是我的日志(来自评论):
[错误]:TiVideoView8:java.io.IOException:setDataSource失败.[ERROR]:TiVideoView8:在android.media.MediaPlayer.setDataSource(MediaPlayer.java:1095)[出错]:TiVideoView8:在android.media.MediaPlayer.setDataSource(MediaPlayer.java:1041)[出错]:TiVideoView8:在机器人.media.MediaPlayer.setDataSource(MediaPlayer.java:987)[ERROR]:TiVideoView8:在android.media.MediaPlayer.setDataSource(MediaPlayer.java:968)
android appcelerator video-player android-6.0-marshmallow appcelerator-titanium
我一直无法弄清楚如何在Chrome中运行的Netflix视频播放器中进行视频搜索(自动前进到视频中的某个点).该currentTime属性可以读取但不能在Netflix播放器中设置,设置后立即触发错误"哎呀!出错了.".Play和Pause等其他操作效果很好.例如,您可以尝试以下操作:
<ENTER>:var video = document.evaluate('//*[@id="5670317"]/video',document).iterateNext()
注意:id值特定于Armageddon.如果您选择其他电影,这很好,请根据该电影的网址中的ID更改ID.
<Enter>:video.play().观察视频恢复播放.很简单,但如何让视频自动前进到视频中的特定点?您可能想参考此文档.显然,您可以通过从左到右拖动视频播放器滑块手动搜索并将其释放到某个位置.您可能希望在执行此操作时发现调用哪个方法或事件,并对其进行模拟.到目前为止我没有运气.
有任何想法吗?
javascript netflix javascript-objects dom-events video-player
有没有办法阻止用户截取屏幕截图或捕获视频文件的屏幕?与 Netflix 的实现方式类似。每当我们尝试单击屏幕时,它都会返回黑屏。我只需要一些正确方向的起点。谢谢!编辑:它与 DRM 更相关。Netflix 已经在实施它,所以肯定有一些解决办法。
我正在开发视频聊天应用程序并尝试录制视频。但我面临着在 safari 浏览器中记录本地流或远程流的问题。它显示错误“找不到变量:MediaRecorder”。
这是我的代码:
function startRecording() {
recordedBlobs = [];
var options = { mimeType: 'video/webm;codecs=vp9' };
if (!MediaRecorder.isTypeSupported(options.mimeType)) {
console.log(options.mimeType + ' is not Supported');
options = { mimeType: 'video/webm;codecs=vp8' };
if (!MediaRecorder.isTypeSupported(options.mimeType)) {
console.log(options.mimeType + ' is not Supported');
options = { mimeType: 'video/webm' };
if (!MediaRecorder.isTypeSupported(options.mimeType)) {
console.log(options.mimeType + ' is not Supported');
options = { mimeType: '' };
}
}
}
}
Run Code Online (Sandbox Code Playgroud) 当我尝试使用video_player 2.2.10播放视频文件时,我在 Samsung g610 (Android v6.0 Marshmallow) 中收到此错误
Unexpected exception loading stream
E/LoadTask( 8813): java.lang.IllegalStateException: Top bit not zero: -2029762164
E/LoadTask( 8813): at com.google.android.exoplayer2.util.ParsableByteArray.readUnsignedIntToInt(ParsableByteArray.java:371)
E/LoadTask( 8813): at com.google.android.exoplayer2.extractor.mp4.AtomParsers.parseStbl(AtomParsers.java:406)
E/LoadTask( 8813): at com.google.android.exoplayer2.extractor.mp4.AtomParsers.parseTraks(AtomParsers.java:146)
E/LoadTask( 8813): at com.google.android.exoplayer2.extractor.mp4.Mp4Extractor.processMoovAtom(Mp4Extractor.java:483)
E/LoadTask( 8813): at com.google.android.exoplayer2.extractor.mp4.Mp4Extractor.processAtomEnded(Mp4Extractor.java:442)
E/LoadTask( 8813): at com.google.android.exoplayer2.extractor.mp4.Mp4Extractor.readAtomPayload(Mp4Extractor.java:424)
E/LoadTask( 8813): at com.google.android.exoplayer2.extractor.mp4.Mp4Extractor.read(Mp4Extractor.java:242)
E/LoadTask( 8813): at com.google.android.exoplayer2.source.BundledExtractorsAdapter.read(BundledExtractorsAdapter.java:127)
E/LoadTask( 8813): at com.google.android.exoplayer2.source.ProgressiveMediaPeriod$ExtractingLoadable.load(ProgressiveMediaPeriod.java:1047)
E/LoadTask( 8813): at com.google.android.exoplayer2.upstream.Loader$LoadTask.run(Loader.java:409)
E/LoadTask( 8813): at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1162)
E/LoadTask( 8813): at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:636)
E/LoadTask( 8813): at java.lang.Thread.run(Thread.java:764)
E/ExoPlayerImplInternal( 8813): Playback error
E/ExoPlayerImplInternal( 8813): com.google.android.exoplayer2.ExoPlaybackException: …Run Code Online (Sandbox Code Playgroud) 我正在使用 fluttervideo_player包来播放视频列表。
List sourceList;
sourceList = [
{
"size": 69742504,
"name": "lucky-roulette.mp4",
"mimetype": "video/mp4",
},
{
"size": 69742504,
"name": "BigBuckBunny.mp4",
"mimetype": "video/mp4",
}
];
Run Code Online (Sandbox Code Playgroud)
我已经检查了这个问题,并在上面做了一些自定义代码。
void play() {
log.fine("Now playing: $_nowPlayingUrl");
_adController = VideoPlayerController.network(_nowPlayingUrl);
_adController.initialize().then((_) => setState(() {}));
_adController.play();
_adController.addListener(checkIfVideoFinished);
}
void checkIfVideoFinished() {
if (_adController == null ||
_adController.value == null ||
_adController.value.position == null ||
_adController.value.duration == null) return;
if (_adController.value.position.inSeconds ==
_adController.value.duration.inSeconds) {
_adController.removeListener(checkIfVideoFinished);
_adController.dispose();
// Change _nowPlayingIndex
setState(() {
_nowPlayingIndex = (_nowPlayingIndex …Run Code Online (Sandbox Code Playgroud) 我正在尝试创建一个视图,允许我发送要播放的视频的 URL。我的观点是这样的:
import SwiftUI
import AVKit
struct PlayerView: View {
var videoURL : String
private let player = AVPlayer(url: URL(string: "https://bitdash-a.akamaihd.net/content/sintel/hls/playlist.m3u8")!)
var body: some View {
VideoPlayer(player: player)
.onAppear() {
// Start the player going, otherwise controls don't appear
player.play()
}
.onDisappear() {
// Stop the player when the view disappears
player.pause()
}
}
}
Run Code Online (Sandbox Code Playgroud)
如果尝试将 URL 设置为传递的参数,我会收到此错误:
Cannot use instance member 'videoURL' within property initializer; property initializers run before 'self' is available
Run Code Online (Sandbox Code Playgroud)
如何将 URL 传递给 View 来播放不同的电影?
我按照建议更改了代码,但视频无法播放:
import …Run Code Online (Sandbox Code Playgroud) video-player ×10
android ×2
flutter ×2
ios ×2
javascript ×2
netflix ×2
swift ×2
appcelerator ×1
browser ×1
dart ×1
dom-events ×1
drm ×1
fallback ×1
flash ×1
html ×1
media-player ×1
mkv ×1
mp4 ×1
safari ×1
swiftui ×1
video ×1