私は音楽アプリを作っています。私は手動でタブビューコントローラの代わりに2つのビューコントローラを作成して、テーブルビューを手動で作成します。xcodeで重複する音楽を修正する方法
問題は、テーブルのセルをクリックすると、音楽が再生されます。しかし、もう一度別のセルをクリックすると、新しい曲が再生され、再生中の現在の曲は停止しません。私は、新しいセルをクリックするとすぐに、現在の演奏曲を止めて、その曲が重なり合わないようにしたい。
さらにわかりやすくするために写真を追加しました。あなたが手伝ってくれることを願います。ありがとうございました。
これは私が私の準備セグエの内側までそこにロジックを作ったが、それは動作していない私のViewController1
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return songtitle.count
}
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = self.mytbl.dequeueReusableCell(withIdentifier: "cell", for: indexPath) as! tableviewcell
cell.songphoto.image = UIImage(named: img[indexPath.row])
cell.titledisplay.text = songtitle[indexPath.row]
return cell
}
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
performSegue(withIdentifier: "go2", sender: self)
}
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
let myconn = segue.destination as! vc2
let indexPath = mytbl.indexPathForSelectedRow
//This is the logic I made but it is not working
if myconn.audioplayer.isPlaying == false{
myconn.selectedsong = (indexPath?.row)!
} else {
myconn.audioplayer.stop()
myconn.selectedsong = (indexPath?.row)!
}
}
からコードです。あなたのビューに名前を付ける考える。 This is my viewcontroller that has cells これはあなたのセグエがこの方法によって、ひどいクラス名です(vc2
の新しいインスタンスを初期化している、
var audioplayer = AVAudioPlayer()
var selectedsong = 0
override func viewDidLoad() {
super.viewDidLoad()
titlearea.text = songtitle[selectedsong]
songpic.image = UIImage(named: img[selectedsong])
do {
let audioPath = Bundle.main.path(forResource: songtitle[selectedsong], ofType: ".mp3")
try audioplayer = AVAudioPlayer(contentsOf: NSURL(fileURLWithPath: audioPath!) as URL)
audioplayer.play()
Timer.scheduledTimer(timeInterval: 1.0, target: self, selector: #selector(vc2.updateProgressView), userInfo: nil, repeats: true)
}
catch
{
print("ERROR")
}
}
@IBAction func play(_ sender: UIBarButtonItem) {
if !audioplayer.isPlaying{
audioplayer.play()
}
}
This is my second Viewcontroller
[最小限で完全で検証可能なサンプルを作成する方法](https://stackoverflow.com/help/mcve)を参照し、コードを再フォーマットしてください。 –
編集が完了しました。おかげで –
私の戻るボタンの唯一のコードは、dismissanationビューのコントローラコードです。 –