В моем приложении есть функция, которая позволяет переключаться между LastSong и FamousSong в зависимости от исполнителя в зависимости от того, выбирает ли пользователь сегмент в UISegmentControl. Когда я запускаю свое приложение и выбираю LastSong, все в порядке. Но когда я выбираю FamousSong, воспроизводится случайная песня, а не тот же исполнитель.
Это мой код:
В моем приложении есть функция, которая позволяет переключаться между LastSong и FamousSong в зависимости от исполнителя в зависимости от того, выбирает ли пользователь сегмент в UISegmentControl. Когда я запускаю свое приложение и выбираю LastSong, все в порядке. Но когда я выбираю FamousSong, воспроизводится случайная песня, а не тот же исполнитель. Это мой код: [code]import UIKit import AVKit import AVFoundation import SwiftyGif
class SongViewController: UIViewController {
@IBOutlet weak var btnStart: UIButton! @IBOutlet weak var imgGif: UIImageView! @IBOutlet weak var lbName: UILabel! @IBOutlet weak var displayShow: UIView! @IBOutlet weak var segControl: UISegmentedControl!
let loadPlist = Loading() var currentSongName: String = "" var player: AVPlayer? var playerLayer: AVPlayerLayer? var lastSongs=[String]() var famousSongs=[String]() var artistNames=[String]()
var currentSongs: [String] = [] var index=0
override func viewDidLoad() { super.viewDidLoad()
print("song name:",currentSongName) print(index)
playMV(songName: currentSongName)
do { let gif = try UIImage(gifName: "music.gif") imgGif.setGifImage(gif, loopCount: -1) } catch { print("Error loading GIF: eRRoR!!!!") }
func playMV(songName: String) { let fullSongName = "\(songName).mp4" print("Song:",fullSongName)
if let path = Bundle.main.path(forResource: songName, ofType: "mp4") { let url = URL(fileURLWithPath: path) player = AVPlayer(url: url)
// Remove any existing player layer playerLayer?.removeFromSuperlayer()
// Create a new player layer playerLayer = AVPlayerLayer(player: player) playerLayer?.frame = displayShow.bounds // Set frame to match displayShow playerLayer?.videoGravity = .resizeAspectFill // Adjust video gravity
// Add player layer to displayShow displayShow.layer.addSublayer(playerLayer!)
// Start playing the video player?.play()
// Update label to show currently playing song lbName.text = songName currentSongName = songName // Update the current song name for reference
} else { print("Can't find Video: \(fullSongName)") } } } [/code] Как исправить этот код?
С FFMPEG довольно легко создать видео -сегмент с опцией -SS и -T. Но это сложно с GSTREAMER. Мы должны написать программу (в C или Python) и вызвать GST_ELEMENT_SEEK, чтобы перейти к определенному времени. Однако такая программа не может быть легко...
У меня возникла загадочная ошибка в библиотеке Google Play после внедрения проверок в приложении, и это не имеет смысла. Это отчет о сбое из консоли:
java.lang.RuntimeException:
at android.app.ActivityThread.performResumeActivity...
У меня возникла загадочная ошибка в библиотеке Google Play после внедрения проверок в приложении, и это не имеет смысла. Это отчет о сбое из консоли:
java.lang.RuntimeException:
at android.app.ActivityThread.performResumeActivity...
Я новичок в Google Billing API. Использование версии 7.0 API. Я интегрирую его в клиент Android. Приложение еще не имеет бэкэнда. У меня есть две учетные записи внутреннего тестирования, которые тестируют приложение. Этот пользователь не подписался...