info.plist根据以下错误消息,我需要在我的设置中启用HTTP模式?
传输安全性阻止了明文HTTP(http://)资源加载,因为它不安全.可以通过应用程序的Info.plist文件配置临时例外.
假设我的域名是example.com.
我正在尝试在a里面播放视频UIView,所以我的第一步是为该视图添加一个类,并使用以下代码开始在其中播放电影:
- (IBAction)movie:(id)sender{
NSBundle *bundle = [NSBundle mainBundle];
NSString *moviePath = [bundle pathForResource:@"Movie" ofType:@"m4v"];
NSURL *movieURL = [[NSURL fileURLWithPath:moviePath] retain];
MPMoviePlayerController *theMovie = [[MPMoviePlayerController alloc] initWithContentURL:movieURL];
theMovie.scalingMode = MPMovieScalingModeAspectFill;
[theMovie play];
}
Run Code Online (Sandbox Code Playgroud)
但是当它在自己的类中使用这个方法时,这只是崩溃应用程序,但在其他地方很好.有谁知道如何在视图中播放视频?并避免全屏?
我正在开发一个需要使用AVFoundation框架播放声音的iOS应用程序.Xcode 4中的工作区结构包含两个项目:
构建实用程序库之后,它会生成一个静态库,该库在主应用程序中用作框架.
因此,当尝试使用下面的代码在主应用程序内播放声音时,它会按预期工作.
NSString *resourcePath = [[NSBundle mainBundle] resourcePath];
NSString *path = [NSString stringWithFormat:@"%@/sound.mp3", resourcePath];
NSURL *url = [NSURL fileURLWithPath:path];
NSError *error = nil;
AVAudioPlayer *audioPlayer = [[AVAudioPlayer alloc] initWithContentsOfURL:url
error:&error];
[audioPlayer play];
Run Code Online (Sandbox Code Playgroud)
相反,当尝试使用与上面相同的代码在实用程序库中播放完全相同的声音(或任何其他声音)时,即使错误为nil且audioPlayer属性值为正确,也不会播放任何声音(数字)频道,持续时间).
我确保AVFoundation框架在两个项目中.
此外,我的类使用AVAudioPlayerDelegate协议并实现这两个方法:
- (void)audioPlayerDidFinishPlaying:(AVAudioPlayer *)player successfully:(BOOL)flag;
- (void)audioPlayerDecodeErrorDidOccur:(AVAudioPlayer *)player error:(NSError *)error;
Run Code Online (Sandbox Code Playgroud)
尝试播放声音后,这些方法都不会被调用.
如果我使用AudioToolbox框架,那么它会播放声音.但AVFoundation由于几个原因,我对使用感兴趣.
怎么知道发生了什么?我错过了什么AVFoundation吗?它可能与AVAudioPlayer在静态库中使用有关吗?
提前致谢.
audio objective-c avfoundation xcode4 automatic-ref-counting
我在这里看了几篇关于直播的帖子video/audio.不幸的是,似乎没有任何"好"的解决方案.
我想SDWebImageView为图像提供相同的视频功能.
现在,我正在使用以下代码: -
NSURL *url=[[NSURL alloc] initWithString:@"http://www.ebookfrenzy.com/ios_book/movie/movie.mov"];
MPMoviePlayerController *moviePlayer=[[MPMoviePlayerController alloc] initWithContentURL:url];
moviePlayer.controlStyle=MPMovieControlStyleDefault;
moviePlayer.shouldAutoplay=YES;
Run Code Online (Sandbox Code Playgroud)
但是当我滚动时tableview,所有视频都会一次又一次地下载.那么我怎么能停止下载呢?
是否有更好的解决方案来播放视频UITableView?相同的Facebook,Instagram和Vine Apps在做什么?
objective-c mpmovieplayercontroller video-streaming uitableview ios
所以当MPMoviePlayerController被弃用时,我一直在寻找解决方案.我当前的代码工作正常:
moviePlayer = MPMoviePlayerController(contentURL: receivedURL)
moviePlayer!.movieSourceType = MPMovieSourceType.Unknown
moviePlayer!.view.frame = view.bounds
moviePlayer!.scalingMode = MPMovieScalingMode.AspectFill
moviePlayer!.controlStyle = MPMovieControlStyle.None
moviePlayer!.shouldAutoplay = true
view.addSubview((moviePlayer?.view)!)
moviePlayer?.setFullscreen(true, animated: true)
moviePlayer!.play()
Run Code Online (Sandbox Code Playgroud)
我录制了一个视频,一旦我完成录制,它将在新视图中使用上面的代码播放.但据我所知,MPMoviePlayerController在iOS9中已弃用,我找不到任何像上面代码一样的解决方案.我明白我需要用户AVPlayer和AVPlayerViewController.
我尝试了这个和许多其他类似的解决方案.但它不会像我在上面的代码中那样工作.
我只是想录制一个视频,并以新视图播放,就像Snapchat一样.
请帮我
添加附加信息:
因此,当我尝试使用此(已接受的答案)或此解决方案(AVPlayer)进行修复时,视图为空白.没有任何显示.
var player:AVPlayer!
let avPlayerLayer:AVPlayerLayer = AVPlayerLayer(player: player)
avPlayerLayer.frame = CGRectMake(50,50,100,100)
self.view.layer.addSublayer(avPlayerLayer)
player = AVPlayer(URL: receivedURL)
player.play()
Run Code Online (Sandbox Code Playgroud)
如果我尝试使用我必须修改的AVPlayerViewController:
let player = AVPlayer(URL: receivedURL)
let playerViewController = AVPlayerViewController()
playerViewController.player = player
dispatch_async(dispatch_get_main_queue(), {
self.presentViewController(playerViewController, animated: true) {
playerViewController.player?.play()
}
})
Run Code Online (Sandbox Code Playgroud)
我希望能够在AVPlayer从嵌入式浏览器全屏播放HTML视频时保留对接管屏幕的实例的引用.我的第一个方法是:
extension AVPlayerViewController {
override public func viewDidAppear(animated: Bool) {
super.viewDidAppear(animated)
print("herezzzzzzzzzzzzzzzzzzzzzzzzzzz") // prints correctly
print(self.player) // prints nil
}
}
Run Code Online (Sandbox Code Playgroud)
然而它总是返回零.所以我正在尝试不同的方法.我想覆盖playAVPlayer 的初始化器或方法,但是如果没有得到objective-c选择器冲突,我似乎无法做到这一点.
import AVKit
import MediaPlayer
extension AVPlayer {
override func play() { // this doesn't work. just an example of what i want
super.play()
print("do stuff here")
}
}
Run Code Online (Sandbox Code Playgroud)
有没有办法覆盖AVPlayer的一个实例方法,所以我可以存储一个引用self?或者它甚至不是AVPlayer?
你如何播放流媒体视频AVPlayer?
import Cocoa
import AVKit
class StreamViewController: NSViewController {
var videoPlayer: AVPlayer!
@IBOutlet weak var moviePlayerView: AVPlayerView!
override func viewDidLoad() {
super.viewDidLoad()
}
override func viewWillAppear() {
super.viewWillAppear()
}
override func viewDidAppear() {
super.viewDidAppear()
openStream()
}
func openStream() {
completeOpenStream { (done) -> (Void) in
if done {
print("done!")
}
}
}
func completeOpenStream(completionHandler: @escaping (Bool) -> (Void)) -> Void {
DispatchQueue.global().async() {
let urlString = "http://samples.mplayerhq.hu/V-codecs/h264/interlaced_crop.mp4" // You can open it with QuickTime.
let url = URL(fileURLWithPath: …Run Code Online (Sandbox Code Playgroud) 我使用以下代码播放音频文件.它适用于MP3文件,但是当我尝试播放AAC文件时,[[AVAudioPlayer alloc] initWithContentsOfURL:]返回nil并收到以下错误:
Error Domain=NSOSStatusErrorDomain Code=1937337955 "The operation couldn’t be completed. (OSStatus error 1937337955.)"
Run Code Online (Sandbox Code Playgroud)
音频文件在Mac和iPhone上正常播放(当我通过电子邮件发送给自己时),请访问:https://dl.dropboxusercontent.com/u/2667666/song.aac
NSError *setCategoryError = nil;
[[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryAmbient error:&setCategoryError];
// Create audio player with background music
NSString *backgroundMusicPath = [[NSBundle mainBundle] pathForResource:@"song" ofType:@"aac"];
NSURL *backgroundMusicURL = [NSURL fileURLWithPath:backgroundMusicPath];
NSError *error;
_backgroundMusicPlayer = [[AVAudioPlayer alloc] initWithContentsOfURL:backgroundMusicURL error:&error];
if (!_backgroundMusicPlayer) {
NSLog(@"_backgroundMusicPlayer pointer is null!!");
}
[_backgroundMusicPlayer setDelegate:self]; // We need this so we can restart after interruptions
[_backgroundMusicPlayer prepareToPlay];
[_backgroundMusicPlayer …Run Code Online (Sandbox Code Playgroud) ios ×7
objective-c ×3
swift ×3
avplayer ×2
aac ×1
audio ×1
avfoundation ×1
avkit ×1
ios10 ×1
ios9 ×1
m4a ×1
macos ×1
media-player ×1
uitableview ×1
xcode ×1
xcode4 ×1