标签: avplayer

如何在UISlider中显示AVplayer当前的播放持续时间

我正在使用自定义UISlider在AVPlayer中播放视频时实现擦洗.试图找出在UISlider各端显示当前播放时间和剩余持续时间的最佳方式,因为它通常显示在MPMoviePlayerController中.

任何帮助表示赞赏.

uislider ios avplayer

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

nsinvalidargumentexception'reason'avplayeritem无法与多个avplayer实例关联'

我在用

的MPMoviePlayerController

对于播放视频,在此我使用自定义搜索栏来跳转视频.但是当我不断地进行前进和后退时,应用程序崩溃并抛出以下错误:

nsinvalidargumentexception'reason'avplayeritem无法与多个avplayer实例关联'

所以请建议.

谢谢

iphone mpmovieplayercontroller ios avplayer

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

AVPlayer在模拟器上播放,但不在真实设备上播放

我正在实现一个基本的音频播放器,以播放远程音频文件.文件格式为mp3.我写的代码在模拟器上工作正常但不适用于真实设备.然而,我在我的应用程序中使用相同的URL工作正常,如果我通过使用safari(在相同的真实设备上)加载它所以我真的没有得到缺少点.以下是我的代码:

self.musicPlayer = [AVPlayer playerWithURL:[NSURL URLWithString:urlTrack]];
[self.musicPlayer play];
Run Code Online (Sandbox Code Playgroud)

非常容易的事情.音乐播放器属性定义为

@property (nonatomic, retain) AVPlayer *musicPlayer;
Run Code Online (Sandbox Code Playgroud)

我也试过使用AVPlayerItem但结果是一样的.这是我用过的代码

AVPlayerItem *playerItem = [AVPlayerItem playerItemWithURL:[NSURL URLWithString:urlTrack]];
self.musicPlayer = [AVPlayer playerWithPlayerItem:playerItem];
[self.musicPlayer play];
Run Code Online (Sandbox Code Playgroud)

最后我尝试使用下面的代码

self.musicPlayer = [AVPlayer playerWithURL:[NSURL URLWithString:urlTrack]];
NSLog(@"Player created:%d",self.musicPlayer.status);
[self.musicPlayer addObserver:self forKeyPath:@"status" options:0 context:nil];


- (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context {
    NSLog(@"Player created:%d",self.musicPlayer.status);

    if (object == self.musicPlayer && [keyPath isEqualToString:@"status"]) {
        if (self.musicPlayer.status == AVPlayerStatusReadyToPlay) {
            [self.musicPlayer play];
        } else if (self.musicPlayer.status == AVPlayerStatusFailed) {
            // something went wrong
        }
    }
} …
Run Code Online (Sandbox Code Playgroud)

objective-c avplayer

2
推荐指数
1
解决办法
3055
查看次数

如何添加倒带按钮来锁定屏幕?

我已经实现了我AVPlayer在iPhone锁屏上的表示MPNowPlayingInfoCenter.但我无法找到如何在标准音乐应用程序中添加±15秒倒带按钮.所以问题是如何在锁定屏幕上添加此按钮?

iphone objective-c ios avplayer mpnowplayinginfocenter

2
推荐指数
1
解决办法
1435
查看次数

AVAssetExportSession和淡入淡出效果

我正在使用音频文件 AVAssetExportSession但无法在保存的文件中淡出淡出效果.这是我正在使用的代码.

       [[NSFileManager defaultManager] removeItemAtURL:audioFileOutput error:NULL];
        AVAsset *asset = [AVAsset assetWithURL:[NSURL fileURLWithPath:file_path]];
        AVAssetExportSession *exportSession = [AVAssetExportSession exportSessionWithAsset:asset
                                                                                presetName:AVAssetExportPresetAppleM4A];
        time = floorf(Endtime-startTime);
        CMTime start = CMTimeMake(0.0*100,100);
        CMTime stop = CMTimeMake(time*100,100);
        CMTimeRange exportTimeRange = CMTimeRangeFromTimeToTime(start, stop);
        AVMutableAudioMix *mutableAudioMix = [AVMutableAudioMix audioMix];
        AVURLAsset* audio = [[AVURLAsset alloc]initWithURL:[NSURL URLWithString:file_path] options:nil];
        AVAssetTrack* audioTrack = [[audio tracksWithMediaType:AVMediaTypeAudio]
                                    objectAtIndex:0];
        AVMutableAudioMixInputParameters *mixParameters = [AVMutableAudioMixInputParameters audioMixInputParametersWithTrack:audioTrack];
        [mixParameters setVolumeRampFromStartVolume:1.0 toEndVolume:0.0 timeRange:exportTimeRange];
        mutableAudioMix.inputParameters = @[mixParameters];
        exportSession.audioMix = mutableAudioMix;
        exportSession.outputURL = audioFileOutput;
        exportSession.outputFileType = AVFileTypeAppleM4A;
        exportSession.timeRange = exportTimeRange;
        [SVProgressHUD showWithStatus:@"Saving Recording.." …
Run Code Online (Sandbox Code Playgroud)

objective-c ios avplayer avassetexportsession avasset

2
推荐指数
1
解决办法
1498
查看次数

可以使用AVQueuePlayer在队列顶部插入项目吗?

假设队列已经初始化,我看到的将项添加到队列中的唯一方法是:

- (void)insertItem:(AVPlayerItem *)item afterItem:(AVPlayerItem *)afterItem

文件说 Pass nil to append the item to the queue.

那么是不是可以将一个项目添加到队列的顶部?我希望能够重播之前播放的内容,而无需重新删除和重新排列所有内容.

ios avplayer avqueueplayer

2
推荐指数
1
解决办法
2644
查看次数

Xamarin iOS AVPlayer - 如何使用通知结束循环视频?

如何在Xamarin iOS下使用AVPlayer循环播放视频?ObjectiveC解决方案建议使用可观察的通知.目前尚不清楚如何使用C#语法或AVPlayer的Xamarin API执行此操作.

您可以在此处查看ObjectiveC问题和答案:使用AVFoundation AVPlayer循环播放视频?

ios avplayer xamarin

2
推荐指数
1
解决办法
2155
查看次数

在iOS9中调整AVAudioMix卷属性无效

我有一个应用程序通过AVMutableComposition将本地文件加载到avPlayer,它可能有多达6个音频和视频轨道作为组成的一部分.

我有一个UISlider,用于调整播放器中每个音轨的音量.

以下是用于更新卷的代码.

- (void)updateVolumeForTake:(Take *)take
{    
    NSInteger trackID = // method that gets trackID

    AVMutableAudioMix *audioMix = self.player.currentItem.audioMix.mutableCopy;
    NSMutableArray *inputParameters = audioMix.inputParameters.mutableCopy;

    AVMutableAudioMixInputParameters *audioInputParams = [inputParameters filteredArrayUsingPredicate:[NSPredicate predicateWithFormat:kTrackIdPredicate, trackID]].firstObject;

   [audioInputParams setVolume:myNewVolumeFloat atTime:myDesiredTime];

    audioMix.inputParameters = inputParameters;

    AVPlayerItem *playerItem = self.player.currentItem;
    playerItem.audioMix = audioMix;
}
Run Code Online (Sandbox Code Playgroud)

这是目前在appStore中存在并且自iOS6以来一直没有问题.在运行iOS9的设备上,上述内容完全不再有效.我已经查看了发行说明,虽然有一些提到AVFoundation,但我没有看到任何有关AVAudioMix的信息.我已经搜索过,并且没有找到任何其他人来解决这个问题.

我还尝试创建一个只有AVPlayer和UISlider的新项目,我看到了同样的行为.

我的问题如下,还有其他人遇到过这个问题吗?是否有人知道与此相关的已知错误?

avplayer ios9

2
推荐指数
1
解决办法
377
查看次数

当按下Swift 2中UINavigation控制器上的"后退"按钮时,让AVPlayer继续播放

我正在开发一个Radio Streaming应用程序,它可以流畅播放.当按下"主页"按钮和"锁定"按钮时,它也会在后台播放.

应用程序嵌入到a中UINavigationController,当我按下UINavigationController中的"后退"按钮时,它停止播放.我的问题是:当按下导航控制器中的"后退"按钮以便继续流式传输时UIViewController,如何让包含它的内容AVPlayer保持活动状态AVPlayer

我的代码

import UIKit
import AVFoundation
import MediaPlayer
import Foundation

class RadioFunctionViewController: UIViewController {

@IBOutlet var playButton: UIButton!
@IBOutlet var statusLabel: UILabel!
var player:AVPlayer = AVPlayer()
private let ObservatingKeyPath = "currentItem.status"
private let PlayerStatusObservingContext = UnsafeMutablePointer<Int>(bitPattern: 1)
private var playingState:Bool = false


override func viewDidLoad() {
    super.viewDidLoad()

    setStatus(4)
    getAudioData("http://184.107.179.162:7546/;")
    playingState = true


}

override func didReceiveMemoryWarning() {
    super.didReceiveMemoryWarning()
    // Dispose of any resources that can be recreated.
}


@IBAction func …
Run Code Online (Sandbox Code Playgroud)

iphone ios avplayer swift2

2
推荐指数
1
解决办法
2593
查看次数

加载AVPlayer时出现错误线程1:EXC_BAD_ACCESS(代码= EXC_I386_GPFLT)

选择collectionViewCell时,我试图加载AVPlayer,这是我的代码didSelectItem

func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) {

    if let item = items?[indexPath.item] {
        showPlayer(item: item)
    }
}

func showPlayer(item: Item) {

    let playerLauncher = PlayerLauncher()
    playerLauncher.showVideoPlayer()

    let playerView = PlayerView()
    playerView.item = item
    playerView.setupPlayerView()
}
Run Code Online (Sandbox Code Playgroud)

这是我的PlayerLauncher文件:

class PlayerView: UIView {

    var item: Item? {
        didSet {
            if let id = item?.itemId {
               itemId = id
            } 
        }
    }

    var itemId = String()

    override init(frame: CGRect) {
        super.init(frame: frame)

        backgroundColor = UIColor(white: 0.3, alpha: 1)
    }

    var …
Run Code Online (Sandbox Code Playgroud)

xcode ios avplayer appdelegate swift

2
推荐指数
1
解决办法
3473
查看次数