Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Feature: multi-track. #1

Open
wants to merge 8 commits into
base: release-qingmei2
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
code commit.
  • Loading branch information
qingmei2 committed Jul 18, 2022
commit 377b3cbb3b39c0de70e3cde00de52ddec2bd5838
4 changes: 2 additions & 2 deletions demos/multi-track/src/main/AndroidManifest.xml
Original file line number Diff line number Diff line change
Expand Up @@ -18,8 +18,8 @@
</intent-filter>
</activity>

<activity android:name=".MultiMusicActivity" />
<activity android:name=".SimpleMultiTrackActivity" />
<activity android:name=".ui.MultiMusicActivity" />
<activity android:name=".ui.MultiTrackMainActivity" />
</application>

</manifest>
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,8 @@ package com.github.qingmei2.exoplayer.multi_track
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.view.View
import com.github.qingmei2.exoplayer.multi_track.ui.MultiMusicActivity
import com.github.qingmei2.exoplayer.multi_track.ui.MultiTrackMainActivity

class MainActivity : AppCompatActivity() {

Expand All @@ -21,6 +23,6 @@ class MainActivity : AppCompatActivity() {
}

private fun onSingleSongListClicked(view: View) {
SimpleMultiTrackActivity.launch(this)
MultiTrackMainActivity.launch(this)
}
}

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,11 @@ data class SongItem(val songName: String,
val partItems: List<SongPartItem>)


data class SongPartItem(val partName: String,
val partType: String,
val partPath: String,
val mainType: Boolean,
val defaultPlay: Boolean)
data class SongPartItem(
val partId: String,
val partName: String,
val partType: String,
val partPath: String,
val mainType: Boolean,
val defaultPlay: Boolean
)
Original file line number Diff line number Diff line change
@@ -1,11 +1,12 @@
package com.github.qingmei2.exoplayer.multi_track
package com.github.qingmei2.exoplayer.multi_track.ui

import android.content.Context
import android.content.Intent
import android.os.Bundle
import android.view.View
import android.widget.SeekBar
import androidx.appcompat.app.AppCompatActivity
import com.github.qingmei2.exoplayer.multi_track.R
import com.github.qingmei2.exoplayer.multi_track.common.SimpleSeekBarListener
import com.github.qingmei2.exoplayer.multi_track.utils.DemoDataSources
import com.google.android.exoplayer2.DefaultRenderersFactory
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,59 @@
package com.github.qingmei2.exoplayer.multi_track.ui

import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import android.widget.SeekBar
import android.widget.TextView
import androidx.annotation.MainThread
import androidx.recyclerview.widget.DiffUtil
import androidx.recyclerview.widget.ListAdapter
import androidx.recyclerview.widget.RecyclerView
import com.github.qingmei2.exoplayer.multi_track.R
import com.github.qingmei2.exoplayer.multi_track.entity.SongPartItem

class MultiTrackListAdapter(
diffUtil: DiffUtil.ItemCallback<SongPartItem> = MultiTrackListDiffUtil
) : ListAdapter<SongPartItem, MultiTrackListViewHolder>(diffUtil) {

@MainThread
fun bindItems(items: List<SongPartItem>) {
this.submitList(items)
}

override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): MultiTrackListViewHolder {
return LayoutInflater.from(parent.context)
.inflate(R.layout.layout_listitem_song_track, parent, false)
.let { MultiTrackListViewHolder(it) }
}

override fun onBindViewHolder(holder: MultiTrackListViewHolder, position: Int) {
holder.binds(getItem(position))
}
}

private object MultiTrackListDiffUtil : DiffUtil.ItemCallback<SongPartItem>() {

override fun areItemsTheSame(oldItem: SongPartItem, newItem: SongPartItem): Boolean {
return oldItem.partId == newItem.partId
}

override fun areContentsTheSame(oldItem: SongPartItem, newItem: SongPartItem): Boolean {
return oldItem == newItem
}
}

class MultiTrackListViewHolder(view: View) : RecyclerView.ViewHolder(view) {

private lateinit var seekbar: SeekBar
private lateinit var trackName: TextView

init {
seekbar = view.findViewById(R.id.seek_bar)
trackName = view.findViewById(R.id.tv_track_name)
}

fun binds(trackItem: SongPartItem) {

}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
package com.github.qingmei2.exoplayer.multi_track.ui

import android.content.Context
import android.content.Intent
import android.os.Bundle
import androidx.appcompat.app.AppCompatActivity
import com.github.qingmei2.exoplayer.multi_track.R
import java.util.*

/**
* 同时播放单曲多个音轨文件
*/
class MultiTrackMainActivity : AppCompatActivity() {

companion object Launcher {

fun launch(context: Context) {
val intent = Intent(context, MultiTrackMainActivity::class.java)
context.startActivity(intent)
}
}

private var mTimer: Timer? = null

override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_multi_track)

initVideoPlayer()
}

private fun initVideoPlayer() {

}
}
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,8 @@
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent" />
app:layout_constraintTop_toTopOf="parent"
tools:itemCount="5"
tools:listitem="@layout/layout_listitem_song_track" />

</androidx.constraintlayout.widget.ConstraintLayout>
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http:https://schemas.android.com/apk/res/android"
xmlns:app="http:https://schemas.android.com/apk/res-auto"
xmlns:tools="http:https://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent">

<SeekBar
android:id="@+id/seek_bar"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:progress="50"
app:layout_constraintLeft_toRightOf="@+id/tv_track_distance"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toBottomOf="@+id/tv_track_name" />

<TextView
android:id="@+id/tv_track_distance"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="4dp"
android:layout_marginBottom="4dp"
android:layout_marginLeft="16dp"
android:layout_marginRight="16dp"
android:text="Dis"
android:textSize="10sp"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintTop_toBottomOf="@+id/tv_track_name" />

<TextView
android:id="@+id/tv_track_name"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginTop="4dp"
android:layout_marginLeft="16dp"
android:layout_marginRight="16dp"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent"
tools:text="吉他" />

</androidx.constraintlayout.widget.ConstraintLayout>