Spotify Premiumを無料で楽しむために、最高の微調整されたSpotifyアプリをご覧ください。 2024年には、iOS 18、iOS 17、iOS 16、およびiOS 15のSpotify ++をダウンロードしてください。脱獄は必要ありません。 Spotify ++のこれらのバージョンは、すべてのiPhoneとiPadと互換性があります。
iOSのSpotify ++は、iPhone、iPad、およびiPod Proデバイス向けに設計されたSpotifyの変更されたバージョンです。以下は、時間を節約するための最高のSpotify Tweakedアプリの最新の更新リストです。
Spotifyは名前を微調整します | 説明 |
---|---|
EeveeSpotify | この調整により、Spotifyはプレミアムサブスクリプションを持っていると思われ、SpotiLifeのように無料のリスニングを許可します。また、カスタム歌詞などの追加機能も提供します。 |
Spotify++ | iOSのSpotify ++は、iPadやiPhoneなどのAppleデバイスに合わせたポピュラーミュージックストリーミングアプリの変更されたバージョンです。サードパーティのクリエイターによって開発されたこの微調整されたアプリは、サブスクリプションなしでSpotifyプレミアム機能のロックを解除し、広告なしのエクスペリエンスとオンデマンドの曲の再生を許可します。 |
Spotube | Spotubeは、Spotify APIサポートを備えたiOSの音楽プレーヤーです。 Spotifyの代替手段として機能し、Spotifyのプレイリストとライブラリ内の音楽コレクション全体への無制限のアクセスをユーザーに付与します。 Spotifyの堅牢なデータAPIを活用して、SpotubeはYouTube、Piped.Video、Jiosaavnなどのプラットフォームとシームレスに統合され、無料の広告フリーの音楽ストリーミングを提供します。 |
Spotilife | SpotiLifeは、広告を削除し、限られたスキップを削除し、他のほぼすべてのプレミアム機能のロックを解除するSpotify iOSアプリの調整です。 |
バージョンSpotify ++から始めて、アプリはSpotifyリクエストをインターセプトしてユーザーデータをロードし、それを脱上化し、パラメーターをリアルタイムで変更します。この方法は非常に安定して効果的で、ユーザーはSpotify ++設定で動的プレミアムパッチング方法を選択できます。
ログインすると、Spotifyはユーザーデータを取得し、 /Library/Application Support/PersistentCache
ディレクトリにあるoffline.bnk
ファイルでキャッシュします。各値やその他の規則の前に長さのバイトを含む、データを独自のバイナリ形式に保存します。 player-license
、 financial-product
、 streaming-rules
などのキーがユーザーの機能を決定します。
Tweakは、初期化中にこのファイルをパッチします。その後、ユーザーがプレミアムアクセスがあると仮定して、Spotifyがロードします。ただし、動的な長さとさまざまなバイトの課題により、実際のパッチングは発生しない可能性があります。 Tweakは、現在のoffline.bnk
ファイルからユーザー名を抽出し、すべてのプリセットプレミアム値を含むファイルであるpremiumblank.bnk
に挿入し、 offline.bnk
を置き換えます。 Spotifyがユーザーデータをリロードする場合、ユーザーは無料プランに切り替えられ、アプリをすばやく再起動してデータをリセットするオプションを使用してポップアップをトリガーできます。
さらに、TweakはSPTFreeTierArtistHubRemoteURLResolver
でtrue
にtrackRowsEnabled
設定し、Artistページの名前を追跡するだけでなくSpotifyがロードできるようにします。この機能は、SpotiLifeと同様に、最新のSpotify 8.9 ##バージョンで有効になっています。 (SpotiLifeはoffline.bnk
も変更しますが、新しいバージョンに影響を与えないあいまいなバイトを変更します)。
サイドロードアプリでSpotifyリンクを開くには、設定> Safari>拡張機能のアクティベーションとアクセス許可を確保します。
iOSデバイス用にテーリングされたSpotifyの拡張バージョンであるSpotify ++を発見します。サブスクリプション、広告なしの音楽とビデオストリーミング、HD再生など、プレミアム機能をお楽しみください。 JailbrakeなしでiPhoneまたはiPadにSpotify ++を簡単にダウンロードしてインストールしてください。最新のiOSバージョンで更新され、他の誰かより先に排他的なコンテンツにアクセスしてください。
特徴 | 説明 |
---|---|
無料のプレミアム機能 | 広告なしのリスニングを含むサブスクリプションなしのSpotifyプレミアム機能にアクセスします。 |
広告なしの体験 | 音楽やビデオのストリーミングセッション中に広告なしで中断を排除します。 |
HD再生 | 完全なHDモードでクリスタルクリアオーディオとビデオ品質をお楽しみください。 |
無制限のスキップ | 制限なしにトラックをスキップして、音楽のプレイリストを完全に制御できます。 |
音楽をインポートします | デバイスのストレージからトラックを簡単にインポートしてSpotify ++に拡大し、音楽ライブラリを拡張します。 |
無料ダウンロード | Spotify ++を無料でダウンロードし、コストなしで音楽体験を強化してください。 |
脱獄は必要ありません | 脱獄する必要なく、iOSデバイスにSpotify ++を安全にインストールします。 |
iOS互換性 | iOS 15とiOS 16と互換性があり、最新のAppleデバイスで最適なパフォーマンスを確保します。 |
強制シャッフルはありません | Spotify ++には強制シャッフル機能なしで、あなたが好む順序であなたの音楽を聞いてください。 |
お気に入りをダウンロードしてください | アプリ内でそれらをダウンロードして、オフラインリスニング用のお気に入りのトラックを保存します。 |
まず、 Song
モデルを改善して、Audioを再生したり、現在の再生状態を追跡するためにisPlaying
使用するためのfileURL
などのプロパティを含めてみましょう。
struct Song {
let id : Int
let title : String
let artist : String
let album : String
let duration : Int // in seconds
let artwork : String // image name or URL
let fileURL : URL // URL to audio file
var isPlaying : Bool = false
}
次に、 AVPlayer
を使用して、より高度なオーディオ再生機能をサポートするために、 AudioPlayer
クラスを更新しましょう。
import AVFoundation
class AudioPlayer {
static let shared = AudioPlayer ( )
private var player : AVPlayer ?
private var currentSong : Song ?
func play ( song : Song ) {
if currentSong ? . id == song . id {
// If the same song is already playing, toggle play/pause
if player ? . rate == 0 {
player ? . play ( )
} else {
player ? . pause ( )
}
} else {
// Play a new song
currentSong = song
player = AVPlayer ( url : song . fileURL )
player ? . play ( )
// Update the isPlaying state of the song
song . isPlaying = true
}
}
func pause ( ) {
player ? . pause ( )
if let song = currentSong {
song . isPlaying = false
}
}
func stop ( ) {
player ? . pause ( )
player = nil
if let song = currentSong {
song . isPlaying = false
}
}
func seek ( to time : TimeInterval ) {
player ? . seek ( to : CMTime ( seconds : time , preferredTimescale : 1 ) )
}
}
それでは、SwiftUIビューを強化して、再生コントロール(Play/Pause、Seek Bar)を含めましょう。
import SwiftUI
import AVFoundation
struct ContentView : View {
@ State private var songs : [ Song ] = [
Song ( id : 1 , title : " Song 1 " , artist : " Artist A " , album : " Album X " , duration : 180 , artwork : " song1 " , fileURL : Bundle . main . url ( forResource : " song1 " , withExtension : " mp3 " ) ! ) ,
Song ( id : 2 , title : " Song 2 " , artist : " Artist B " , album : " Album Y " , duration : 200 , artwork : " song2 " , fileURL : Bundle . main . url ( forResource : " song2 " , withExtension : " mp3 " ) ! )
// Add more songs as needed
]
@ State private var isPlaying = false
@ State private var currentSong : Song ?
@ State private var currentTime : TimeInterval = 0
@ State private var duration : TimeInterval = 0
var body : some View {
NavigationView {
VStack {
if let song = currentSong {
VStack {
Image ( song . artwork )
. resizable ( )
. aspectRatio ( contentMode : . fit )
. frame ( width : 200 , height : 200 )
Text ( song . title )
. font ( . title )
. padding ( . top , 8 )
Text ( song . artist )
. font ( . headline )
. foregroundColor ( . gray )
. padding ( . bottom , 8 )
Text ( timeToString ( time : currentTime ) + " / " + timeToString ( time : duration ) )
. font ( . caption )
. foregroundColor ( . gray )
. padding ( . bottom , 16 )
HStack {
Button ( action : {
self . previous ( )
} ) {
Image ( systemName : " backward.fill " )
. font ( . title )
. foregroundColor ( . blue )
}
. padding ( . trailing , 40 )
Button ( action : {
self . playPause ( )
} ) {
Image ( systemName : isPlaying ? " pause.circle.fill " : " play.circle.fill " )
. font ( . system ( size : 80 ) )
. foregroundColor ( . blue )
}
Button ( action : {
self . next ( )
} ) {
Image ( systemName : " forward.fill " )
. font ( . title )
. foregroundColor ( . blue )
}
. padding ( . leading , 40 )
}
. padding ( . top , 32 )
Slider ( value : Binding (
get : { self . currentTime } ,
set : { newValue in
self . seek ( to : newValue )
}
) , in : 0 ... duration )
. padding ( . horizontal )
}
. onAppear {
self . play ( song : song )
}
} else {
Text ( " Select a song to play " )
. font ( . title )
. foregroundColor ( . gray )
}
List ( songs , id : . id ) { song in
SongRow ( song : song , isSelected : song . id == self . currentSong ? . id )
. onTapGesture {
self . currentSong = song
}
}
. navigationBarTitle ( " Music Player " )
}
}
. onReceive ( Timer . publish ( every : 1 , on : . main , in : . common ) . autoconnect ( ) ) { _ in
if self . isPlaying , let player = AudioPlayer . shared . player {
self . currentTime = player . currentTime ( ) . seconds
self . duration = player . currentItem ? . duration . seconds ?? 0
}
}
}
private func play ( song : Song ) {
AudioPlayer . shared . play ( song : song )
isPlaying = true
}
private func playPause ( ) {
if let song = currentSong {
if isPlaying {
AudioPlayer . shared . pause ( )
} else {
play ( song : song )
}
isPlaying . toggle ( )
}
}
private func seek ( to time : TimeInterval ) {
AudioPlayer . shared . seek ( to : time )
}
private func next ( ) {
guard let currentIndex = songs . firstIndex ( where : { $0 . id == currentSong ? . id } ) , currentIndex < songs . count - 1 else {
return
}
currentSong = songs [ currentIndex + 1 ]
}
private func previous ( ) {
guard let currentIndex = songs . firstIndex ( where : { $0 . id == currentSong ? . id } ) , currentIndex > 0 else {
return
}
currentSong = songs [ currentIndex - 1 ]
}
private func timeToString ( time : TimeInterval ) -> String {
let minutes = Int ( time ) / 60
let seconds = Int ( time ) % 60
return String ( format : " %02d:%02d " , minutes , seconds )
}
}
struct SongRow : View {
let song : Song
let isSelected : Bool
var body : some View {
HStack {
Image ( song . artwork )
. resizable ( )
. aspectRatio ( contentMode : . fit )
. frame ( width : 50 , height : 50 )
VStack ( alignment : . leading ) {
Text ( song . title )
. font ( . headline )
Text ( song . artist )
. font ( . subheadline )
}
Spacer ( )
if isSelected {
Image ( systemName : " speaker.fill " )
. foregroundColor ( . blue )
. padding ( . trailing , 20 )
}
}
. padding ( 8 )
}
}
iPhone 16(今後)、iPhone 15 Pro Max、iPhone 15 Pro、iPhone 15 Plus、iPhone 15、iPhone 14 Pro Max、iPhone 14 Pro、iPhone 14 Plus、iPhone 14。
iPhone 13 Pro Max、iPhone 13 Pro、iPhone 13 Mini、iPhone 13、iPhone 12 Pro Max、iPhone 12 Pro、iPhone 12 Mini、iPhone 12、iPhone 11 Pro Max、iPhone 11 Pro、iPhone 11、iPhone XS Max、iPhone XS 、iPhone XR、iPhone X。
Spotify for iOS 18:
iOS 18ベータ
Spotify for iOS 17:
iOS 17.6、iOS 17.5.1、iOS 17.5、iOS 17.4.1、iOS 17.4、iOS 17.3.1、iOS 17.3、iOS 17.2.1、iOS 17.2、iOS 17.1.2、iOS 17.1.1、 iOS 17.1、iOS 17.0.3、iOS 17.0.2、iOS 17.0.1、iOS 17。
Spotify for iOS 16:
iOS 16.7.5、iOS 16.7.4、iOS 16.7.3、iOS 16.7.2、iOS 16.7.1、iOS 16.7、iOS 16.6.1、iOS 16.6、iOS 16.5.1、iOS 16.5、iOS 16.4.1、iOS 16.4、iOS 16.3.1、iOS 16.3、iOS 16.2、iOS 16.1.2、iOS 16.1.1、iOS 16.1、iOS 16.0.3、iOS 16.0.2、iOS 16.0.1、iOS 16。
Spotify for iOS 15:
iOS 15.8.2、iOS 15.8.1、iOS 15.8、iOS 15.7.9、iOS 15.7.8、iOS 15.7.7、iOS 15.7.6、iOS 15.7.5、iOS 15.7.4、iOS 15.7 .3、iOS 15.7.2、iOS 15.7.1、iOS 15.7、iOS 15.6.1、iOS 15.6、iOS 15.5、iOS 15.4.1、iOS 15.4、iOS 15.3.1、iOS 15.3、iOS 15.2.1、iOS 15.2.2.2.2.2.2.2.2.2.2 、iOS 15.1.1、iOS 15.1、iOS 15.0.2、iOS 15.0.1、iOS 15。
Spotify for iOS 14:
iOS 14.8.1、iOS 14.8、iOS 14.7.1、iOS 14.7、iOS 14.6、iOS 14.5.1、iOS 14.5、iOS 14.4.2、iOS 14.4.1、iOS 14.4、iOS 14.3、iOS 14.2.2 .1、iOS 14.2、iOS 14.1、iOS 14.0.1、iOS 14。
Spotify for iOS 13:
iOS 13.7、iOS 13.6.1、iOS 13.6、iOS 13.5.1、iOS 13.5、iOS 13.4.1、iOS 13.4、iOS 13.3.1、iOS 13.3、iOS 13.2.3、iOS 13.2.2、 iOS 13.2、iOS 13.1.3、iOS 13.1.2、iOS 13.1.1、iOS 13.1、iOS 13。
Spotify for iOS 12:
iOS 12.5.7、iOS 12.5.6、iOS 12.5.5、iOS 12.5.4、iOS 12.5.3、iOS 12.5.2、iOS 12.5.1、iOS 12.5、iOS 12.4.9、iOS 12.4 .8、iOS 12.4.7、iOS 12.4.6、iOS 12.4.5、iOS 12.4.4、iOS 12.4.3、iOS 12.4.2、iOS 12.4.1、iOS 12.4、iOS 12.3.2、iOS 12.3.11 、iOS 12.3、iOS 12.2、iOS 12.1.4、iOS 12.1.3、iOS 12.1.2、iOS 12.1.1、iOS 12.1、iOS 12.0.1、iOS 12。
このプロジェクトはオープンソースであり、MITライセンスによって管理されています。ライセンス契約で概説されている条件の下で、それを利用、変更、および配布することをお勧めします。
私たちは、献身と努力がSpotify ++プロジェクトを可能にした個人とチームに心から感謝します。彼らの貢献は非常に貴重でした: