相关疑难解决方法(0)

传输安全性阻止了明文HTTP

info.plist根据以下错误消息,我需要在我的设置中启用HTTP模式?

传输安全性阻止了明文HTTP(http://)资源加载,因为它不安全.可以通过应用程序的Info.plist文件配置临时例外.

Xcode中

假设我的域名是example.com.

xcode ios ios9 app-transport-security ios10

1425
推荐指数
23
解决办法
74万
查看次数

iPhone SDK:你如何在视图中播放视频?而不是全屏

我正在尝试在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)

但是当它在自己的类中使用这个方法时,这只是崩溃应用程序,但在其他地方很好.有谁知道如何在视图中播放视频?并避免全屏?

objective-c media-player mpmovieplayer ios

59
推荐指数
5
解决办法
13万
查看次数

AVAudioPlayer没有播放任何声音

我正在开发一个需要使用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)

相反,当尝试使用与上面相同的代码在实用程序库中播放完全相同的声音(或任何其他声音)时,即使错误为nilaudioPlayer属性值为正确,也不会播放任何声音(数字)频道,持续时间).

我确保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

58
推荐指数
5
解决办法
3万
查看次数

将视频播放到UITableView中

我在这里看了几篇关于直播的帖子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

11
推荐指数
2
解决办法
5242
查看次数

不推荐使用MPMoviePlayerController,现在怎么办?

所以当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)

发生这种情况,没有显示任何内容. 在此输入图像描述

mpmovieplayercontroller ios avplayer swift

11
推荐指数
1
解决办法
8225
查看次数

Swift:如何访问全屏HTML视频的播放器对象?

我希望能够在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?

ios swift

10
推荐指数
1
解决办法
494
查看次数

使用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)

macos ios avplayer swift avkit

8
推荐指数
1
解决办法
5199
查看次数

AVAudioPlayer initWithContentsOfURL为AAC/M4A文件返回nil

我使用以下代码播放音频文件.它适用于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)

aac m4a avaudioplayer ios

5
推荐指数
2
解决办法
8180
查看次数