Initial CarPlay audio server implementation with file management, playlists, and album/single classification
This commit is contained in:
82
server-api-example.md
Normal file
82
server-api-example.md
Normal file
@@ -0,0 +1,82 @@
|
||||
# Server API Example
|
||||
|
||||
Your server should provide an API endpoint that returns audio track information. Here's what the app expects:
|
||||
|
||||
## Endpoint: GET /api/tracks
|
||||
|
||||
Returns a JSON array of audio tracks with their streaming URLs.
|
||||
|
||||
### Response Format:
|
||||
|
||||
```json
|
||||
{
|
||||
"tracks": [
|
||||
{
|
||||
"id": "unique-track-id-1",
|
||||
"title": "Song Title",
|
||||
"artist": "Artist Name",
|
||||
"album": "Album Name",
|
||||
"duration": 180,
|
||||
"streamURL": "http://your-server.com/audio/track1.mp3",
|
||||
"artworkURL": "http://your-server.com/artwork/track1.jpg"
|
||||
},
|
||||
{
|
||||
"id": "unique-track-id-2",
|
||||
"title": "Another Song",
|
||||
"artist": "Another Artist",
|
||||
"album": "Another Album",
|
||||
"duration": 240,
|
||||
"streamURL": "http://your-server.com/audio/track2.mp3",
|
||||
"artworkURL": "http://your-server.com/artwork/track2.jpg"
|
||||
}
|
||||
]
|
||||
}
|
||||
```
|
||||
|
||||
### Field Descriptions:
|
||||
|
||||
- `id`: Unique identifier for the track
|
||||
- `title`: Track title
|
||||
- `artist`: Artist name
|
||||
- `album`: Album name (optional)
|
||||
- `duration`: Track duration in seconds
|
||||
- `streamURL`: Direct URL to the audio file (mp3, m4a, etc.)
|
||||
- `artworkURL`: URL to album artwork image (optional)
|
||||
|
||||
## Audio File Requirements:
|
||||
|
||||
- Supported formats: MP3, M4A, AAC, WAV
|
||||
- Files should be accessible via HTTP/HTTPS
|
||||
- Consider using HTTP range requests for better streaming performance
|
||||
- HTTPS recommended for production
|
||||
|
||||
## Example Server Implementation (Node.js/Express):
|
||||
|
||||
```javascript
|
||||
app.get('/api/tracks', (req, res) => {
|
||||
const tracks = [
|
||||
{
|
||||
id: '1',
|
||||
title: 'My Song',
|
||||
artist: 'My Artist',
|
||||
album: 'My Album',
|
||||
duration: 180,
|
||||
streamURL: 'http://localhost:3000/audio/song1.mp3',
|
||||
artworkURL: 'http://localhost:3000/artwork/song1.jpg'
|
||||
}
|
||||
];
|
||||
|
||||
res.json({ tracks });
|
||||
});
|
||||
|
||||
app.use('/audio', express.static('path/to/audio/files'));
|
||||
app.use('/artwork', express.static('path/to/artwork/files'));
|
||||
```
|
||||
|
||||
## Configuration:
|
||||
|
||||
Update the `baseURL` in `CarPlayAudioApp/Services/AudioService.swift`:
|
||||
|
||||
```swift
|
||||
private let baseURL = "http://your-server.com/api"
|
||||
```
|
||||
Reference in New Issue
Block a user